簡體   English   中英

htaccess在實時服務器上沒有重寫規則

[英]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_negotiationApache文檔描述了Multiviews選項在啟用時的作用:

如果服務器收到/ some / dir / foo的請求並且/ some / dir / foo不存在,那么服務器會讀取名為foo。*的所有文件的目錄,並有效地偽造一個類型映射,該映射將所有這些命名為如果客戶端通過名稱請求其中一個文件,則為它們分配相同的媒體類型和內容編碼。 然后,它會根據客戶的要求選擇最佳匹配,並返回該文檔。

所以在你的情況下,你必須禁用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM