.htaccess 使用重写规则清理我的URL
我的主要目标是改变用户访问我的网站时看到的内容 到目前为止,如果我想浏览我的网站,它是这样做的: 或 我试图做到的是,当我将用户发送到我的联系人页面时,我希望他们能够转到.htaccess 使用重写规则清理我的URL,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我的主要目标是改变用户访问我的网站时看到的内容 到目前为止,如果我想浏览我的网站,它是这样做的: 或 我试图做到的是,当我将用户发送到我的联系人页面时,我希望他们能够转到http://ieztech.net/~aeterna/联系我们/,但实际显示位于http://ieztech.net/~aeterna/index.php?page=联系我们 我尝试了很多不同的重写规则,但我似乎无法解决这个问题 以下是我目前正在使用的内容: RewriteEngine On RewriteBase / Re
http://ieztech.net/~aeterna/联系我们/
,但实际显示位于http://ieztech.net/~aeterna/index.php?page=联系我们
我尝试了很多不同的重写规则
,但我似乎无法解决这个问题
以下是我目前正在使用的内容:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?page=$1&%{QUERY_STRING} [L]
我也尝试过(我发现):
及
我是否还遗漏了其他东西,或者我正在尝试的是不正确的吗?这有用吗
RewriteBase /~aeterna
RewriteCond %{REQUEST_URI} !index.php [NC]
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
添加此条件以防止重写特定文件:
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|pdf|css|js)
你的最后一条规则对我有用。试一试会出什么问题?您的服务器错误日志中有任何内容吗?@showdev我仍然可以使用index.php?page=contact-us导航站点,但是如果我要转到/contact-us/它会显示一个404。我的错误日志中唯一的一件事是:
[Fri May 30 17:27:56 2014][error][client x.x.x.x]文件不存在:/home/aeterna/public\u html/home,referer://~aeterna/home/
如果你想/联系我们/
,为什么要转到“home”?如果你想通过$page var将所有东西都转储到index.php中,然后我建议使用类似于#3的方法,除了使用^(.*)$
(无斜杠)。另一种方法是暂时将[L]更改为[R],以查看mod rewrite对URL的操作。添加编辑后,这是固定的,谢谢!添加尾部斜杠怎么样<代码>http://192.185.9.14/~aeterna/twitch抽奖/=>http://192.185.9.14/~aeterna/index.php?page=twitch-raffle/
我曾尝试在我的代码中去除斜杠,但似乎这并没有删除斜杠。太棒了!似乎我的最后一个问题是,当我访问http://192.185.9.14/~aeterna/
,我希望它显示http://192.185.9.14/~aeterna/index.php?默认情况下,page=home
。如果未设置$page
变量,我已尝试将其强制设置为home
,但它没有改变!我正在尝试这样做:$page=$\u GET['page']代码>if(!isset($page)){
$page='home';
}
die('page:'.$page'')代码>你可以在这里尝试:这是一个不同的主题,在一个新的问题中询问它,然后发布你的PHP代码。似乎这只是一个我没有想到的设计缺陷。谢谢你的帮助:)
RewriteBase /~aeterna
RewriteCond %{REQUEST_URI} !index.php [NC]
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|pdf|css|js)