Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用重写规则清理我的URL_.htaccess_Mod Rewrite - Fatal编程技术网

.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)