.htaccess用两个变量重写url

时间:2017-05-03 09:27:16

标签: wordpress apache .htaccess mod-rewrite url-rewriting

我的.htaccess重写规则存在问题(我是新手,所以可能这很简单)

我的网址是:

http://www.example.com/film-al-cinema/?titolo=Ghost+in+the+Shell&id=315837

所以我在第一个变量titolo=""中有电影的标题,在第二个变量id=""中有电影的ID。

我希望网址看起来像

http://www.example.com/film-al-cinema/Ghost+in+the+Shell/315837

我试图用以下方法更改htaccess文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^film-al-cinema/(.*)/([0-9]+)$ film-al-cinema/?titolo=$1&id=$2 [R]
</IfModule>

但是这会将我重定向到404页面

修改

我正在使用Wordpress,因此/film-al-cinema/是Wordpress页面

编辑2

# BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

RewriteRule ^film-al-cinema/([^/]+)/(\d+)/?$  /index.php?page_id=21016&titolo=$1&id=$2 [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

1 个答案:

答案 0 :(得分:0)

试试这个并告诉我它是否适合你(更新),

 RewriteEngine On
 RewriteCond %{THE_REQUEST} ^GET\ /film-al-cinema\/\?titolo=([^\s&]+)&id=([^\s&]+) [NC]
 RewriteRule ^film-al-cinema\/$ /film-al-cinema/%1/%2? [R,L]
 RewriteRule ^film-al-cinema/([^/]+)/([^/]+)/?$ /film-al-cinema/?titolo=$1&id=$2 [NC,L]

您应该创建当前.htaccess文件的备份,然后使用此代码。 如果一切正常,请在最后一行添加R=301代替R