Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 虚荣URL:mod_重写和SQL查询返回错误的标志分隔符错误_Php_.htaccess_Url_Mod Rewrite_Vanity Url - Fatal编程技术网

Php 虚荣URL:mod_重写和SQL查询返回错误的标志分隔符错误

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

我正在使用一种非常简单的方法在我的网站上启用虚荣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} >""
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