【发布时间】:2014-06-23 23:45:27
【问题描述】:
我有 2 个重定向,它们都在内部重定向。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(.*)\/(.*) /var/www/$1/www.$1/$2 #THIS line is not working
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.(.*/)(.*) /var/www/$2$1.$2$3
我无法让第一个工作。
它应该这样做:
网址:example.org/the/uri/the/user/used
rewriterule 应该将他重定向到:/var/www/example.org/www.example.org/the/uri/the/user/used
所以我的问题是:我要查找的正则表达式是什么?
编辑:
这是我现在的引擎 :)
<VirtualHost *:80>
ServerAdmin *@gmail.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\..[^.]+$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^\/]*)(.*)$ /var/www/$1/www.$1/$2 [L]
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.(.*/)(.*) /var/www/$2$1.$2$3 [L]
</VirtualHost>
它将 example.org 内部重定向到 /var/www/example.org/www.example.org
和第二部分。它将 foo.example.org 重定向到 /var/www/example.org/foo.example.org
【问题讨论】:
标签: regex apache mod-rewrite redirect