首页 文章

htaccess重写规则不起作用

提问于
浏览
0

我在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]

这在某种程度上工作正常 .

第一个问题 - >正确重定向,但URL也会改变 . 它应该保留为“product / category / 10”,如果我使用id为10.但是当我使用它时,它正确地重定向,但URL更改为“product / profile?profile_id = 10” . 我读到某处使用[L,P]而不是[L,R],但是它给出了服务器错误 .

第二个问题 - >现在我想创建一个新的重写规则,例如“product / id”也应该重定向到“product / profile?profile_id = id” . 为此,我用过

RewriteRule ^product/(.*)$ product/profile?profile_id=$1 [L,R]

现在这不起作用并显示服务器错误

第3个问题 - >我是否还可以创建新的重写规则,例如“/ id”也应该重定向到“product / profile?profile_id = id” . 这可能吗 ?

第四个问题 - >我是否也可以创建一个新的重写规则,如“/ id1 / id2”也应该重定向到“product / profile?profile_id = id1&serial_id = id2” . 这可能吗 ?

在此先感谢您的时间 .

2 回答

  • 1

    用它..

    Options All -Indexes
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    
  • 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
    

相关问题