Regex 无法验证htaccess正则表达式
我正在尝试使用.htaccess重定向URL,以便能够: 请求:Regex 无法验证htaccess正则表达式,regex,wordpress,apache,.htaccess,Regex,Wordpress,Apache,.htaccess,我正在尝试使用.htaccess重定向URL,以便能够: 请求:http://www.example.org/business/businesswhatever/ 重定向:http://www.example.org/businessgrowing/businesswhatever/ 我离解决方案越近,就越能应用以下代码: RewriteRule ^(.*)example\.org/businessgrow/(.*)$ $example.org/businessgrowing/$2 [R=301
http://www.example.org/business/businesswhatever/
重定向:http://www.example.org/businessgrowing/businesswhatever/
我离解决方案越近,就越能应用以下代码:
RewriteRule ^(.*)example\.org/businessgrow/(.*)$ $example.org/businessgrowing/$2 [R=301,L]
但它根本不起作用。验证器不会检查任何东西,验证的唯一方法是省略URL的http://部分。
我需要使用主机名作为正则表达式的一部分,因为做了一些更改,现在businessgrow位于以下路径中:www.example.org/corp/businessgrow,所以我需要在正则表达式中使用主机名的一部分,以便区分example.org/businessgrow(必须是404)和example.org/corp/businessgrow(200 OK)
我使用此检查器是为了在部署解决方案之前进行测试。我试图从http://(因为我无法思考其他任何东西,我已经尝试了任何东西)中删除斜杠,它成功了,但validator(我的意思是,它不会跳过验证)输出3个斜杠,如下所示http:///www.example.org/en/businessgrow/businesswhatever/
如果我输入的URL没有上面的http://代码,效果会很好,但Apache无法识别它,网站也无法显示单个页面。
我使用的是Debian wheezy服务器,我使用的是Wordpress,我负责将这一行写在基线下方,因此我的.htacces如下所示:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)example\.org/businessgrow/(.*)$ $1example.org/businessgrowing/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^(.*)示例\.org/businessgrow/(.*)$$1example.org/businessgrowing/$2[R=301,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
如果有人给我一个线索来解决这个问题,我会很感激,我认为验证过程中有一些错误,但我找不到。
非常感谢您抽出时间
顺便说一句,我的英语很抱歉。您不希望主机名作为正则表达式的一部分,只使用请求URI路径进行匹配。尝试:
RewriteCond %{HTTP_HOST} example\.org$ [NC]
RewriteRule ^businessgrow/(.*)$ /businessgrowing/$1 [R=301,L]
问题是我需要使用主机名作为正则表达式的一部分,因为为了在hostname/corp中包含/businessgrow,进行了一些更改/businessgrow@Hmorv但毕竟只有一个htaccess用于一个域?是的,只有一个htaccess,并且只用于一个域domain@Hmorv如果必须与主机名匹配,然后使用一个条件(见编辑)哇,它工作得很好!非常感谢。我不知道如果我只使用重写规则而不是条件,它为什么会失败