我已经搜索了一段时间,无法找到解决方案,我的问题,也许我只是没有寻找正确的事情,但无论如何,这是发生了什么事。.htaccess重写问题没有斜杠
我在我的.htaccess文件中有以下mod_rewrites。重写可以很好地工作,但如果我没有结尾的斜杠,那么它会在URL中自动显示一个变量。请看下面的例子以获得清晰的理解。
URL样本
如果我进入http://website.com/test/
,(注意尾随斜线)页面的URL将保持完全相同的,完美加载内容!
但是,如果我忘记了斜线,即:http://website.com/test
,那么页面URL将更改为http://website.com/test/?var1=test
。 (现在注意到我已经忽略了斜线),内容仍然正确加载,并且一切正常,只是我的URL现在是“丑陋的”。
我希望我明确这一点,但如果您有任何问题,请随时询问。谢谢!
的.htaccess代码
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2 [L]
RewriteRule ^([\w-]+)/?$ _client.php?var1=$1 [L]
它看起来像问题是不相关的部分'.htaccess'你显示。这些规则都没有简单的'?var1 ='重定向,只有前面有'_client.php',它不在最终的URL中。在服务器配置中检查网站根目录或规则的'.htaccess'中的规则。 – Cheery 2014-10-18 04:38:05
我不认为我很理解。这个.htaccess在我的根目录中,下面是我用来获取变量的PHP。 '<?php $ clientURL = str_replace(“/”,“”,$ _REQUEST [“var1”]); $ seriesSet = str_replace(“/”,“”,$ _REQUEST [“var2”]); $ sermonSet = str_replace(“/”,“”,$ _REQUEST [“var3”]); $ serviceSet = str_replace(“/”,“”,$ _REQUEST [“var4”]); ?>' – 2014-10-18 04:48:59
你在'_client.php'中做了什么?它可以做这个重定向吗?我只是写了非规则重定向到'?var1 = ...',只有'_client.php'和'_client.php'不在URL中。正如我想的那样,发生了一些事情,但在上市规则中。 – Cheery 2014-10-18 04:51:58