很抱歉,我的问题不清楚。我通过htaccess重写了规则url,它起作用了。所以当我尝试链接现有文件夹的路径时遇到问题。
我的问题:
Redirect url: 'http://localhost/folders'
But it display: 'http://localhost/folders/?link=folder'
所以,我不希望它显示'?link = folder'。它不显示带有重定向URL的'?link = folder':'http://localhost/folders'
我的htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^$ index.php [L]
RewriteRule ^([^/]*)/$ index.php?link=$1&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?link=$1&action=$2&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)/([0-9]+)/([^/]*)/$ index.php?link=$1&id=$2&action=$3&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)$ index.php?link=$1&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?link=$1&action=$2&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)/([0-9]+)/([^/]*)$ index.php?link=$1&id=$2&action=$3&%{QUERY_STRING} [L]
RewriteRule !^(public/*|folder/*|index\.php) [NC,F]
请,有人告诉我如何解决。如果我的英语不好我很抱歉。
答案 0 :(得分:0)
您的问题可能与nodejs8.10
有关。如果“文件夹”是文件系统上的物理目录,并且您请求DirectorySlash
(不带斜杠),则mod_dir通过301重定向到http://localhost/folders
(带斜杠)来“修复” URL。
此mod_dir行为与以下规则相冲突,该规则附加了http://localhost/folders/
临时字符串。
?link=folders
此“重写”将被mod_dir转换为外部“重定向”。
您可以尝试通过在RewriteRule ^([^/]*)$ index.php?link=$1&%{QUERY_STRING} [L]
文件顶部使用以下指令,防止mod_dir在目录后添加斜杠:
.htaccess
但是,您现在需要自己管理所有的尾部斜杠,这可能并不简单。
但是,除了上面的内容外,我只在URL的末尾添加一个斜杠,并且仅匹配具有该斜杠的URL,而不是两个(您正在复制指令)。