我尝试制作一个自定义链接:
mysite.com/users/test
我的.htaccess文件中有以下代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9\_\-]+)$ index.php?h=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-z0-9\_\-]+)\/(.*)$ index.php?h=$1&p=$2 [QSA,L]
我的问题是:当一个“/ something”正在运行时,index.php正确加载但是使用“/ something / test”我得到了一个Uncaught SyntaxError:意外的令牌<。
三江源。
答案 0 :(得分:1)
我认为" \/
"以下是不正确的。
RewriteRule ^([A-Za-z0-9\_\-]+)\/(.*)$ index.php?h=$1&p=$2 [QSA,L]
我认为应该是:
RewriteRule ^([A-Za-z0-9\_\-]+)/(.*)$ index.php?h=$1&p=$2 [QSA,L]
您的定义需要注意的一点是,没有指定RewriteBase
指令,index.php
部分通常会以前导斜杠开头 - 这导致:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9\_\-]+)$ /index.php?h=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-z0-9\_\-]+)/(.*)(/?)$ /index.php?h=$1&p=$2 [QSA,L]
使用显示以下GET变量的网址https://localhost/something/somethingelse/blahblah/?page=1
对此进行了测试: -
Array
(
[h] => something
[p] => somethingelse/blahblah
[page] => 1
)