apache 直通问题(尝试“重定向”而不重定向)

问题描述 投票:0回答:1

我正在使用 Apache 服务器。

我想在访问 site.com/{URI} 时显示 site.com/site/{URI} 的内容,但我不想要任何重定向。我也无权访问配置文件,只能访问 .htaccess。

site.com -> site.com/site  
site.com/example -> site.com/site/example

我已经尝试过了,但没用。

RewriteEngine On
RewriteRule ^$ /site [L]
apache webserver apache2
1个回答
0
投票

RewriteRule ^$ /site [L]
仅匹配根 URL,后面没有任何内容(即 site.com)。我不确定您对正则表达式 (RegExp) 有多熟悉,但
^
表示在字符串开头匹配,
$
表示在字符串结尾匹配。总之,
^$
只匹配空字符串,这就是为什么重写规则只匹配您的根 URL,而不匹配其他地方。

听起来你想要这个:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/site
RewriteRule ^(.*)$ /site/$1 [L]

这包括一个 RewriteCond(ition),仅当请求 URI(在根之后)不以

/site
开头时才应用下一条规则。这可以避免重写已经正确的 URL。

© www.soinside.com 2019 - 2024. All rights reserved.