.htaccess 用两个变量重写 url
Posted
技术标签:
【中文标题】.htaccess 用两个变量重写 url【英文标题】:.htaccess rewrite url with two variables 【发布时间】:2017-10-01 01:16:39 【问题描述】:我的.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
【问题讨论】:
我觉得电影电影的规则已经改写了 film-al-cinema 不是目录,但它是 wordpress 页面,所以我认为这是可能的? 如果film-al-cinema
不是现有目录,wordpress 如何映射到`websitename.com/film-al-cinema?...`?甚至更好:wordpress 的 index.php 在哪里? wordpress 安装的 .htaccess 中是否还有更多规则?
@Quasimodo'sclone 我不明白,抱歉。如果您想查看pulpcorn.com/film-al-cinema/…,这是网址
好的,我把^film-al-cinema/(.*)/([0-9]+)$
放回去了吗?
【参考方案1】:
试试这个,让我知道它是否适合你(更新),
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
【讨论】:
如果我去http://www.pulpcorn.com/film-al-cinema/Guardiani+della+Galassia+Vol.+2/283995
它对我不起作用,如果我去 http://www.pulpcorn.com/film-al-cinema/?titolo=Guardiani+della+Galassia+Vol.+2&id=283995
它会给我错误 404,它会将我重定向到没有任何变量的电影电影
你添加了一个额外的点Vol.
,我必须为此修改我的条件。等等
能否请您告诉我,包括- + .
您的网址中有哪些特殊字符
@alessandroduemetri 我可以看到 URL --> pulpcorn.com/film-al-cinema/… 正在重定向到 pulpcorn.com/film-al-cinema/Ghost+in+the+Shell/315837 在更新当前代码后,一切都会正常工作
@alessandroduemetri 我已经更新了代码,它对我有用,试试吧,让我知道它是否适合你。以上是关于.htaccess 用两个变量重写 url的主要内容,如果未能解决你的问题,请参考以下文章