目前我的链接如下:
http://config.website.nl/?show=home 我希望它看起来像这样: http://config.website.nl/Home
现在我一直在研究很多RewriteEngine脚本,但它们都是更先进的,我似乎无法让它工作......
这是我目前的代码:
RewriteEngine On
# RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
RewriteRule ^/(.*)/ index.php?show=$1
答案 0 :(得分:1)
保持你的.htaccess像这样:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?show=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?show=$1 [L,QSA]
答案 1 :(得分:0)
你走了:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*) index.php?show=$1
<?php
$show = (isset($_REQUEST['show'])) ? strtolower($_REQUEST['show']) : null;
print_r($_REQUEST);
switch ($show) {
case "about":
echo 'About us... <a href="/home">Go back home</a>';
break;
case "home":
default:
echo 'Welcome to the home page... <a href="/about">Visit the about us page</a>';
break;
}
?>
要小心:很多人都认为.htaccess会自动地“#t;将您撰写的所有链接index.php?show=about
更改为/about
。不是这种情况。您必须配置PHP以手动以正确的格式回显链接(参见上文)。
P.S。根据服务器的不同,您可能需要也可能不需要RewriteBase行。这就是为什么你会在几个例子中看到它的注释。
答案 2 :(得分:0)
我认为你在上一次重写规则中只有一个额外的斜杠。尝试:
RewriteRule ^/(.*) index.php?show=$1