500在PHP中将QUERY URL更改为SEO友好URL时出现内部错误


500 internal error on changing QUERY URL to SEO Friendly URL in PHP

我在web主机的子文件夹中安装了一个php脚本,并且有一个查询字符串,我希望将其更改为SEO友好的URL。

现在的情况:

http://example.com/payment/index.php?link=AhYBksPI123

以及我想要的方式:

http://example.com/payment/AhYBksPI123/

我使用了一些.htaccess规则,每次我都会得到500个内部服务器错误。

注意:网站的根文件夹中安装了打开的购物车,根文件夹中没有.htaccess文件,我只是将.htaccess文件放在/payment/子文件夹中。当然,我测试了将.htaccess文件放入根文件夹,但仍然得到相同的错误。

这是我用过的测试代码之一,把它放在根上:

RewriteEngine on
RewriteBase /payment/
RewriteCond %{THE_REQUEST} /index(?:'.php)?'?link=([^'s&]+)'s [NC]
RewriteRule ^ %1/? [R=302,L,NE]

我不知道我做错了什么?!

我不知道这是不是有用的错误日志:

〔2015年12月8日星期二12:44:11.722999〕〔核心:警报〕〔pid 2871:tid140185601808128][客户5.161.54.254:60365]/path/to/root/payment/.htaccess:无效命令"''xef''xbb''xbfRewriteEngine",可能拼写错误或由模块定义不包括在服务器配置中

【2015年12月8日星期二12:21:18.328407】【核心:警报】【pid 30874:tid140185509488384][客户端5.161.54.254:46771]/path/to/root/.hta访问:命令"''xef''xbb''xbfRewriteEngine"无效,可能拼写错误或由服务器配置中未包含的模块定义

命令"''xef''xbb''xbfRewriteEngine"无效,可能拼写错误或由服务器配置中未包含的模块定义

命令前面有一些不可见的字符:'xef'xbb'xbf。删除它们,或者,如果你看不到它们,重写文件以确保它们不见了。

试试这个:

RewriteEngine on
RewriteBase /payment
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?link=$1 [L,R=301]