Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 无法验证htaccess正则表达式_Regex_Wordpress_Apache_.htaccess - Fatal编程技术网

Regex 无法验证htaccess正则表达式

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

我正在尝试使用.htaccess重定向URL,以便能够:

请求:
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如果必须与主机名匹配,然后使用一个条件(见编辑)哇,它工作得很好!非常感谢。我不知道如果我只使用重写规则而不是条件,它为什么会失败