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