Rewrite rule not working

时间:2015-11-20 作者:Noor

我在WordPress上有一个带有url的页面/sca. 我想要所有来自/sca/project_0 指向/sca?urn=project_0. 我在我的.htaccess 文件,但它不工作。我不认为这是mod\\u重写的问题,因为永久链接正在工作。这是我的.htaccess 文件:

 # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sca/([^/]*)$ sca/urn=$1 
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
RewriteRule ^sca/* sca?urn=$1 [R=301,L] 部分工作,只是我没有得到任何参数,它正在返回/sca/project_0/sca?urn=.

2 个回复
SO网友:IXN

如果此地址已经获得流量(来自入站链接等),为什么不尝试这样一个好的老式重定向:

Redirect 301 /sca/project_0 http://www.yourdomain.com/sca?urn=project_0

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
或者在重写规则之外使用301重定向:

Redirect 301 /sca/project_0 http://www.yourdomain.com/sca?urn=project_0

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sca/([^/]*)$ sca/urn=$1 
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
还请注意,WP通常会删除其中的其他重写规则#Begin WordPress #End WordPress. 有时,重写规则的行为与localhost中的行为不符。

SO网友:Jeff Mattson

Try:

 RewriteRule ^sca/([^/]*)$ sca\\?urn=$1 

相关推荐

如何在我的根域上组合WordPress htaccess+在子文件夹上组合php

我为一个看似重复的问题道歉,但我所看到的几十个问题中,没有一个是同样的问题。我有以下目录结构:/.htaccess /index.php /subfolder/.htaccess /subfolder/index.php 我希望所有页面请求都由/index.php, 除非请求启动/subfolder 在这种情况下,应由/subfolder/index.php.e、 g。/abc 将重写为/subfolder/abce、 g。/subfolder/def 将重写为/subf