多页面的htaccess重写规则

时间:2013-07-23 21:48:03

标签: .htaccess

这似乎很简单,但它对我不起作用。 我试图将show.php?id = $ 1和producer.php?id = $ 1重写为友好的URL。 第一个完美,第二个没有。如果我删除第一个,第二个工作正常。

我在这里做错了什么?

我的代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /show.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /producer.php?id=$1 [L]

</IfModule>

提前致谢!

1 个答案:

答案 0 :(得分:0)

你的问题很简单。

对于同一目录,您不能有多个重写规则,您需要为每个IE设置一个单独的文件夹。有一个名为“show”的文件夹,并且包含htaccess文件,其中包含show的重写数据。

.htaccess for show folder:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /show.php?id=$1 [L]

</IfModule>

然后让另一个名为“producer”的文件夹带有第二次重写规则。

生产者文件夹的

.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /producer.php?id=$1 [L]

</IfModule>