无法使用重写规则

时间:2014-08-12 23:32:50

标签: php apache

我遵循了本网站的指示:

http://www.datakoncepts.com/seo

mod_rewrite正在运行,因为我首先使用:

print_r(in_array('mod_rewrite', apache_get_modules()));

并返回一个,但是当我进行页面上提到的测试时(创建test.html和test.php并获得将test.html交换到test.php的规则),它正在工作。

所以现在我有一个网页,例如:www.toto.com/TEST/category.php?cat = 1

并且规则是(为了取悦Mike我添加了RewriteEngine On):

RewriteEngine On  
RewriteRule ^([a-zA-Z_]+)/$ category.php?cat=$1 [L]

我也尝试过:

RewriteRule ^([^/\.]+)/?$ category.php?cat=$1 [L]

这不起作用?有人可以帮忙吗?

PS:.htaccess位于www.toto.com/TEST /

我正在使用XAMPP在localhost上测试它。

编辑:

问题是我认为这实际上会修改URL的样子。所以它确实似乎做出了替代。例如:

RewriteRule ^index.php category.php?cat=$1 [L]

实际上会将category.php?cat = 1的内容交换为^ index.php,但我想要的是重写URL。换句话说:

RewriteRule ^category/([a-zA-Z0-9_-]+)$ category.php?cat=$1 [L]

显示为:

www.toto.com/TEST/category/1 /

URL中的

(假设原始网址为www.toto.com/TEST/category.php?cat=1)。

在我的特殊情况下,似乎并非如此?为什么?那我们怎么做呢?

1 个答案:

答案 0 :(得分:0)

你走了;

如果根文件夹中的.htaccess文件

RewriteEngine On   
Options +FollowSymLinks
RewriteRule ^TEST/category/([a-zA-Z0-9_-]+)$ /TEST/category.php?cat=$1 [QSA]

如果您的.EST文件夹中的.htaccess文件

RewriteEngine On   
Options +FollowSymLinks
RewriteRule ^category/([a-zA-Z0-9_-]+)$ category.php?cat=$1 [QSA]

测试网址: http://emrerothzerg.com/stackoverflow/index/212

http://emrerothzerg.com/stackoverflow/index.php?cat=212

CODES:

RewriteEngine On   
Options +FollowSymLinks
RewriteRule ^index/([a-zA-Z0-9_-]+)$ index.php?cat=$1 [QSA]

P.S。 / stackoverflow /文件夹中的.htaccess文件