Mod rewrite &引用;如有要求「;在.htaccess中?

Mod rewrite &引用;如有要求「;在.htaccess中?,mod-rewrite,Mod Rewrite,我使用重写条件将网站重定向到www。我的代码是: RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC] RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301] 我在互联网上找不到,如果在url.com中我需要它,我如何做请求,因为该网站也必须是本地可访问的 例如:我找到了,但我不明白如何用我的脚本实现它。如果RewriteCond应该已经适用于您的案例,则仅当条件匹配时才处理下一个规则,因此,

我使用重写条件将网站重定向到www。我的代码是:

RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]
我在互联网上找不到,如果在url.com中我需要它,我如何做请求,因为该网站也必须是本地可访问的


例如:我找到了,但我不明白如何用我的脚本实现它。

如果RewriteCond应该已经适用于您的案例,则仅当条件匹配时才处理下一个规则,因此,该规则不会针对本地主机进行处理。

您当前的
RewriteCond
对于将
www.
应用到
website.com
是正确的,如果它尚未存在。为了避免在使用
localhost
时发生
RewriteRule
,您需要额外的
RewriteCond
来检查主机

这是因为条件
^www\.example\.com$
匹配除
www.example.com
以外的任何域,该域包括
localhost

# Only apply other conditions if not working on localhost
RewriteCond %{HTTP_HOST} !localhost [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
如果您需要使用多个域(
example.com
example.org
),您可以使其更具动态性,并将每个域转换为
www.example.com
www.example.org

# If not on localhost
RewriteCond %{HTTP_HOST} !localhost [NC]
# and the domain does not begin www.
RewriteCond %{HTTP_HOST} !^www\.
# Redirect to apply the www. to HTTP_HOST
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

测试时请小心-您的浏览器可能会缓存旧的301重定向。在测试期间,您可能需要将它们更改为
R=302
,并清除浏览器缓存。当您对它的工作感到满意时,将其更改回
R=301

您的需求不太清楚。请发布一个不应该被你的规则重写的域的例子。您的意思是说您只想修改
example.com
的域,而不想修改
localhost
?如果是这样,您当前的规则应该已经起作用了。或者您想让您当前的规则更灵活,而不需要硬编码
example.com
作为域,而是将其应用于任何域(本地主机除外)?我尝试这样做:对我来说,将域始终重定向到www上的域很重要,仅在线,本地不需要,因为如果我现在使用脚本,我只能在线工作,本地我得到重定向错误。我可以在www.dynamicly上进行在线重定向吗?没有给每次网站的网址?哦,我明白。在本地,您看到了重定向,您希望避免这种情况。@MichaelBerkowski true:),我该怎么做?请参见下面的答案。我认为您的脚本可以工作,但我如何替换“localhost”,因为我有虚拟主机,localy是url的类似“”,提前谢谢