我正在为我的组织设置网址缩短服务。我想重写缩短的网址到我的index.php文件,但是重定向请求到我的主网站的根目录,即:
请求:short.domain.tld / abc
用户看到:short.domain.tld / abc
提供的页面:short.domain.tld / index.php?code = abc
请求:short.domain.tld /
用户看到:website.domain.tld
提供的页面:website.domain.tld(在我的网站服务器上)
我的.htaccess文件目前是:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^/(.*)$ index.php?code=$1 [L]
RewriteRule ^.*$ http://website.domain.tld/
我不确定如何区分子目录请求和域根请求。
答案 0 :(得分:1)
您可以在根目录中的.htaccess文件中尝试:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} short\.domain\.tld [NC]
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteRule ^([^/]+)/? /index.php?code=$1 [NC,L]
RewriteCond %{HTTP_HOST} short\.domain\.tld [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* http://website.domain.tld [R=301,L]
内部地图
带有或不带斜杠的 http://short.domain.tld/abc
(在地址栏中显示)
要
http://short.domain.tld/index.php?code=abc
假设字符串abc
是动态的。
或永久重定向
http://short.domain.tld/
没有分段路径
要:
http://website.domain.tld/
(显示在地址栏中)