2017-06-17 106 views
1

在我的.htaccess Apache的文件,我有以下代码:通配符Modrewrite htaccess的APACHE重定向

#MY AWESOME WEBSITE 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} ^myawesomewebsite.com 
RewriteRule ^(.*) http://coolwebsite.com/web/this-is-a-friendly-url-version-of-my-awesome-website [P] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} ^www.myawesomewebsite.com 
RewriteRule ^(.*) http://coolwebsite.com/web/this-is-a-friendly-url-version-of-my-awesome-website [P] 

两者myawesomewebsite.comcoolwebsite.com在我的主机链接正确,myawesomewebsite.comalias

该代码正常工作。但如果我去:

myawesomewebsite.com/index.php 
myawesomewebsite.com/wtf.php 
myawesomewebsite.com/blahblahblah 
myawesomewebsite.com/whateveryouwrite 

您将在所有情况下看到coolwebsite.com/index.php的内容。

我希望再导向:.*myawesomewebsite.com.*http://coolwebsite.com/web/this-is-a-friendly-url-version-of-my-awesome-website

我怎样才能做到这一点? 感谢您的阅读,请原谅我的英文不好。

回答

1

您正在使用[P]标志,它用于代理,而不是您想要的。仅此替换所有的规则:

RewriteCond %{HTTP_HOST} ^(?:www\.)?myawesomewebsite\.com$ 
RewriteRule^http://coolwebsite.com/web/this-is-a-friendly-url-version-of-my-awesome-website [R=301,L] 

我拿出的条件,如果该文件不存在,只重定向,因为你没有说你希望它这样的。

让我知道我是否误解了你想要达到的目标。

更新

试试这个:

RewriteCond %{HTTP_HOST} (?:^|\.)myawesomewebsite\.com$ 
RewriteCond %{REQUEST_URI} !=/web/this-is-a-friendly-url-version-of-my-awesome-website 
RewriteCond %{REQUEST_URI} !=/web.php 
RewriteCond %{REQUEST_URI} !^/images/ 
RewriteRule^/web/this-is-a-friendly-url-version-of-my-awesome-website [L] 
+0

非常感谢您的回答!真的“文件”不存在! 'myawesomewebsite.com'只是一个别名和一个连接到我的网络服务器的域名,我想显示'http://coolwebsite.com/web/this-is-a-friendly-url-version-of'的内容-my-awesome-website',当用户访问myawesomewebsite.com但是保存进度条中的URL时,我不想让redir向我显示'http://coolwebsite.com/web/这是一个友好的url-version-of-my-awesome-website'地址栏。希望我解释得很好,请原谅我写英文的可怕方式。 – candlejack

+0

我的目标是在'。* myawesomewebsite.com。'中显示'http://coolwebsite.com/web/this-is-a-friendly-url-version-of-my- awesome-website'的内容。'' - '。*'表示匹配零个或多个字符的通配符正则表达式。 – candlejack

+0

:ThumbsUp:我测试了你的代码,几乎完美!唯一的问题是,地址栏中的URL从'myawesomewebsite.com'更改为'http://coolwebsite.com/web/this-is-a-friendly-url-version-of -my-awesome -websit e'我该如何避免或防止这种情况?谢谢! – candlejack