我正在使用 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]
RewriteRule ^$ /site [L]
仅匹配根 URL,后面没有任何内容(即 site.com)。我不确定您对正则表达式 (RegExp) 有多熟悉,但 ^
表示在字符串开头匹配,$
表示在字符串结尾匹配。总之,^$
只匹配空字符串,这就是为什么重写规则只匹配您的根 URL,而不匹配其他地方。
听起来你想要这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/site
RewriteRule ^(.*)$ /site/$1 [L]
这包括一个 RewriteCond(ition),仅当请求 URI(在根之后)不以
/site
开头时才应用下一条规则。这可以避免重写已经正确的 URL。