簡體   English   中英

奇怪的URL RewriteRule .htaccess問題需要解釋

[英]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.

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