seo 友好的 url 不起作用
我有一個類似下面www.exampe.com/distributor/index.php的文件夾結構 ,我想通過 seo 友好的 www.example.com/distributor/abcinc訪問該文件 ,然後在 index.php 中想要獲取在這種情況下,最後一段的值 abcinc 作為變數進入頁面
我的問題是當我訪問www.example.com/distributer/abcinc時收到 404,但如果我訪問www.example.com/distributor則會載入頁面
這是我的 .htaccess 文件,它位於分發器文件夾中
RewriteEngine On RewriteRule ^distributor/([0-9]+)$ distributor/index.php?id=$1
我通過 phpinfo() 確認 mod_rewrite 已全部設置/啟用,因此不確定我缺少什麼
…我的 .htaccess 文件位於分發器文件夾中
RewriteRule ^distributor/([0-9]+)$ distributor/index.php?id=$1
如果
.htaccess
文件實際上在/distributor
目錄中,那麼您不應該在模式distributor
中引用目錄。這與相對於包含該文件的目錄的 URL 路徑匹配。RewriteRule
.htaccess
同樣,在目錄中時,您不應將
distributor
目錄包含在相對替換字元串中/distributor
。相對替換再次是相對於包含該.htaccess
文件的目錄。您現有的
.htaccess
文件被寫入就好像它位於文件根目錄中,而不是所述的/distributor
子目錄中。但是,您在範例中還同時引用了“distribut o r”和“distribut er r”——我假設“e”是一個錯字,但這顯然也會導致匹配失敗。
而且,正如@TeroKilkanen 的回答中所提到的,您正在匹配正則表達式中的數字,而不是字母,就像您的範例 URL 中一樣。
因此,您現有的規則匹配表單的 URL
/distributor/distributor/123
並重寫為/distributor/distributor/index.php?id=123
.在文件中嘗試以下
/distributor/.htaccess
操作:RewriteRule ^(\w+)$ index.php?id=$1 [L]
速記字元類匹配數字和字母,
\w
相當於字元類[0-9a-zA-Z_]
。