2016-02-26 153 views
2

这是URL我要求:无法获取点查询字符串

localhost/register... // with dotes at the end 

尝试使用$_GET获得URI时:

echo $_GET['uri']; 

它返回register

我只有2个文件: .htaccess文件:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ home.php?uri=$1 [L,NC,QSA] 

和home.php:

<?php 
echo $_GET['uri']; 
?> 

我怎样才能得到准确的查询字符串?

编辑: 它工作时的URL是这样的:

localhost/home.php?uri=register.. // returns register.. 

但不工作的时候网址是这样的:

localhost/register... // returns register 
+0

你的例子适合我。 Debian:谷歌浏览器版本46.0.2490.80(64位)和Mozilla Firefox 46.0a1 Apache/2.2.22,PHP/5.4.45-0 + deb7u2。你的环境是什么? – Progrock

+0

也许你的网络浏览器试图做一些文件夹遍历和剥离点。尝试其他浏览器。 – Progrock

+0

Apache/2.4.7(Win32)OpenSSL/1.0.1e PHP/5.6.17 Firefox 44 也尝试使用chrome – AliN11

回答

1

尝试使用这个规则,我们正在捕获值替换您的规则从%{REQUEST_URI}

RewriteEngine On 
RewriteBase /xampp/external/projects/ 

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^/xampp/external/projects/(.*)$ 
RewriteRule^page.php?uri=%1 [L,QSA] 
+0

请告诉我如何将非www网址重定向到www考虑这些条件? – AliN11

+1

好的,检查更新的答案。 – anubhava