1

我们正在尝试将 .htaccess 文件迁移到 Apache 2.2.25。由于正则表达式的更改,我们的 .htaccess 文件似乎与我们的旧版本与新版本的 Apache 2.2.25 不兼容。

我做了一些研究,但遗憾的是我无法弄清楚需要改变什么。

我们在 Apache 错误日志中收到以下错误。

.htaccess:无法编译正则表达式。

这是我们的 .htaccess 文件。我认为这些“RedirectMatch 301”是导致问题的原因。

RedirectMatch 301 ^/test/?$ http://www.domain.com/
RedirectMatch 301 ^/test/products/?$ http://www.domain.com/products/
RedirectMatch 301 ^/test/products/about/?$ http://www.domain.com/products/about/

以下似乎工作正常,并且不会在 Apache 错误日志中产生错误。

#Wordpress configuration and force www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^domain\.co\.in$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.in/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301]

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

1 回答 1

0

而不是使用这个:

RedirectMatch 301 ^/test/products/?$ http://www.domain.com/products/

我们改用这个。这没有产生错误。

RedirectMatch 301 ^/test/products/(.*)$ http://www.domain.com/products/$1
于 2013-09-03T23:35:22.613 回答