[英]Strange URL RewriteRule .htaccess Issue needs explaination
我有類似book.php?id=23
URL,並使用htaccess使它們成為book/id/title
我嘗試了
RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
但是它沒有用,它正在轉發到books.php
但是沒有$_REQUEST
數據,這是因為URL引用與我在社區的幫助books.php
用以解決此問題的php文件的名稱相同工作
RewriteRule ^books/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
這是我當前的工作.htaccess:
RewriteEngine On
RewriteRule ^kitap/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
RewriteRule ^yyin/([0-9]+)/([^/]+)/?$ yayin.php?id=$1 [NC,L,QSA]
RewriteRule ^proje/([0-9]+)/([^/]+)/?$ project.php?id=$1 [NC,L,QSA]
彼得 :
我見過的每個在線教程都使用^ product和product.php或^ category和category.php之類的示例,所以我不知道為什么會這樣。 也許其他人可以對此有所了解?
在對您的原始問題進行了簡短的討論之后,我開始對此感到困惑,並且我開始認為這取決於服務器配置以及它是否將運行無擴展腳本。
例如,我的開發服務器將運行無擴展腳本,即鍵入/ xyz將顯示xyz.php
的重寫規則
RewriteRule ^category/([0-9]+)/([^/]+)/?$ category.php?id=$1 [NC,L,QSA]
不起作用,但是
RewriteRule ^categories/([0-9]+)/([^/]+)/?$ category.php?id=$1 [NC,L,QSA]
確實有效。
在我的不支持無擴展腳本的托管服務器上,www.mydomain.com / xyz將給我404錯誤,但是:
RewriteRule ^category/([0-9]+)/([^/]+)/?$ category.php?id=$1 [NC,L,QSA]
如預期般運作。
我只能假設當服務器支持無擴展腳本時,如果別名與腳本名稱相同,則重寫規則將被忽略。
您很可能擁有與重寫規則沖突的MultiViews
。
完全.htaccess :(位於DOCUMENT_ROOT目錄中)
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^kitap/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
RewriteRule ^yyin/([0-9]+)/([^/]+)/?$ yayin.php?id=$1 [NC,L,QSA]
RewriteRule ^proje/([0-9]+)/([^/]+)/?$ project.php?id=$1 [NC,L,QSA]
RewriteRule ^books/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.