![](/img/trans.png)
[英].htaccess rewriter rule working in localhost but not on live server
[英]htaccess not working rewrite rule on live server
我不擅長寫重寫規則。 我想為表單的url做一個重寫規則
url: domain.com/albums.php到url: domain.com/albums
工作完美,但是,當我點擊特定的專輯不重寫到下面的網址
url: domain.com/albums/album-name
它卡住並再次顯示所有專輯。 我的htaccess重寫規則是
RewriteRule ^albums/([A-Za-z0-9-]+)?$ /album-gallery.php?albumURL=$1 [NC,L]
RewriteRule ^albums$ /album.php [NC,L]
試試看:
Options -MultiViews
# To externally redirect without .php
RewriteCond %{THE_REQUEST} \s/+(.+)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
RewriteRule ^albums/([A-Za-z0-9-]+)?$ /album-gallery.php?albumURL=$1 [NC,L]
# To internally rewrite to .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
關於mod_negotiation的Apache文檔描述了Multiviews選項在啟用時的作用:
如果服務器收到/ some / dir / foo的請求並且/ some / dir / foo不存在,那么服務器會讀取名為foo。*的所有文件的目錄,並有效地偽造一個類型映射,該映射將所有這些命名為如果客戶端通過名稱請求其中一個文件,則為它們分配相同的媒體類型和內容編碼。 然后,它會根據客戶的要求選擇最佳匹配,並返回該文檔。
所以在你的情況下,你必須禁用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.