我在htaccess文件中遇到重写规则的问题。请帮忙。
这是我目前的htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /product-project/
RewriteRule . index.php [L]
</IfModule>
现在我想创建一个重写规则,例如“product / category / id”应重定向到“product / profile?profile_id = id”。为此,我使用了
RewriteRule ^product/.*/(.*)$ product/profile?profile_id=$1 [L,R]
在某种程度上工作正常。
第一个问题 - &gt;它正确重定向,但URL也会更改。它应该保留为“product / category / 10”,如果我使用id为10.但是当我使用它时,它正确地重定向,但URL更改为“product / profile?profile_id = 10”。我读到某处使用[L,P]而不是[L,R],但是它给出了服务器错误。
第二个问题 - &gt;现在我想创建一个新的重写规则,例如“product / id”也应该重定向到“product / profile?profile_id = id”。为此,我使用了
RewriteRule ^product/(.*)$ product/profile?profile_id=$1 [L,R]
现在这不起作用&amp;显示服务器错误
第三个问题 - &gt;我是否还可以创建新的重写规则,例如“/ id”也应该重定向到“product / profile?profile_id = id”。这可能吗?
第四个问题 - &gt;我是否还可以创建新的重写规则,例如“/ id1 / id2”也应该重定向到“product / profile?profile_id = id1&amp; serial_id = id2”。这可能吗?
提前感谢您的时间。
答案 0 :(得分:1)
使用它..
Options All -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 1 :(得分:1)
这是你想要的,请检查。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3
两个id的
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3&id=$4