Php Can';无法在查询字符串中获取点

Php Can';无法在查询字符串中获取点,php,.htaccess,Php,.htaccess,这是我请求的url: localhost/register... // with dotes at the end 尝试使用$\u get获取URI时: echo $_GET['uri']; 它返回寄存器 我只有2个文件: .htaccess文件: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ home.php?uri=$

这是我请求的url:

localhost/register... // with dotes at the end
尝试使用
$\u get
获取URI时:

echo $_GET['uri'];
它返回
寄存器

我只有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

尝试使用此规则替换您的规则,我们将从
%{REQUEST\u 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]

你的例子对我很有用。Debian:Google Chrome版本46.0.2490.80(64位)和Mozilla Firefox 46.0a1 Apache/2.2.22、PHP/5.4.45-0+deb7u2。您的环境是什么?也许您的web浏览器正在尝试进行文件夹遍历并剥离点。尝试另一个浏览器。Apache/2.4.7(Win32)OpenSSL/1.0.1e PHP/5.6.17 Firefox 44也在chromeIt上试用过。它也不会在
URL
末尾显示多个斜杠。对于我来说,对于重写的参数,后面的斜杠也会合并成一个斜杠。
$\u服务器['REQUEST\u URI']
显示了什么?(确定是浏览器还是服务器剥离了它们。)考虑到这些条件,请告诉我如何将非www URL重定向到www?