2013-12-18 118 views
1

我有一个像book.php?id=23和使用htaccess的URL以使其book/id/title 我想这奇怪的URL重写规则的.htaccess问题需要交代

RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA] 

,但它没有工作,它转发到books.php但没有$_REQUEST数据 事实证明,这是因为URL引用是相同的名称作为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] 

PeteR

我见过的每一个在线教程使用像^产品和 product.php,或^类别和类别的例子。所以我不知道为什么这个 应该。也许别人可以对此有所了解?

回答

0

很可能你有MultiViews与重写规则冲突。

Fulle的.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] 
+0

我试过,导致重定向循环 – ImadBakir

+0

我甚至没有提供任何规则,所以肯定重定向循环是由现有规则/代码引起的。如果您在问题中发布完整的.htaccess,我可以调查并提出修复建议。 – anubhava

+0

你可以在你的问题中发布你现有的.htaccess吗? – anubhava

1

我开始后,我们对你原来的问题小的讨论与此捣乱,我开始认为这取决于服务器的配置和无论它是否会运行无扩展脚本。

我的dev的服务器,例如,将运行扩展名的脚本,即输入/ 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] 

确实有效。

在我的托管服务器,它不支持extentionless脚本,www.mydomain.com/xyz会给我一个404错误,但:

RewriteRule ^category/([0-9]+)/([^/]+)/?$ category.php?id=$1 [NC,L,QSA] 

按预期工作。

我只能假设当服务器支持扩展脚本时,如果别名与脚本名称相同,则重写规则将被忽略。

+0

我也在我的服务器上工作过,我的服务器支持无延伸脚本,巧合?不要想。 同样的情况下,我不支持无限制脚本的其他主机工作得很好。 – ImadBakir