Php 虚荣URL:mod_重写和SQL查询返回错误的标志分隔符错误
我正在使用一种非常简单的方法在我的网站上启用虚荣URL,但我得到了一个500服务器错误。 我想启用如下URL:Php 虚荣URL:mod_重写和SQL查询返回错误的标志分隔符错误,php,.htaccess,url,mod-rewrite,vanity-url,Php,.htaccess,Url,Mod Rewrite,Vanity Url,我正在使用一种非常简单的方法在我的网站上启用虚荣URL,但我得到了一个500服务器错误。 我想启用如下URL:mysite.com/ben而不是mysite.com/profile.php?id=2 以下是我在htaccess文件中使用的代码: RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^\.]+)$ $1.php [NC] RewriteCond %{REQUEST_FILENAME} >"" RewriteR
mysite.com/ben
而不是mysite.com/profile.php?id=2
以下是我在htaccess文件中使用的代码:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC]
RewriteCond %{REQUEST_FILENAME} >""
RewriteRule ^([^\.]+)$ profile.php?username=$1 [L]</pre>
现在,使用这个脚本,我在尝试访问的任何页面上都会出现500服务器错误。
在我的Apache错误日志中,我可以看到:RewriteRule:bad flag delimiters
这是什么意思?
RewriteCond%{REQUEST\u FILENAME}.php-f
在
-f
标志后面的这一行末尾有额外的空格。尝试用以下代码替换.htaccess代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ profile.php?username=$1 [L,QSA]
好吧,这听起来有点傻,但是看看你在这里发布的链接: 示例末尾的
将导致500服务器错误。而且,毫不奇怪,当我查看错误日志时,它会说:
/var/www/localhost/htdocs/.htaccess: RewriteRule: bad flag delimiters
因此,请删除
,并将
更改为
查看apache错误日志以了解问题所在。默认情况下,日志会写入某个地方,比如我刚检查过的JonathanKuhn,这里是我得到的错误:RewriteRule:bad flag delimiter你确定你没有任何多余的空格吗?你的.htaccess代码中真的有
吗?@JonLin我检查过了,看起来没有任何错误谢谢,我按照你说的做了,现在得到了以下错误::未定义的偏移量:第7行中的3,即$result=query(“SELECT*FROM username='$getName[3]'”代码>有没有办法修复它?@benriff这是一个PHP错误。这是说,$getName[3]
中的“3”处没有索引。
/var/www/localhost/htdocs/.htaccess: RewriteRule: bad flag delimiters