我在我的网站主机的子文件夹中安装了一个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]
我不知道我做错了什么?!
我不知道这是否是有用的错误日志:
[Tue Dec 08 12:44:11.722999 2015] [core:alert] [pid 2871:tid 140185601808128] [客户端5.161.54.254:60365] /path/to/root/payment/.htaccess:命令无效 '\ xef \ xbb \ xbfRewriteEngine',可能拼写错误或由模块定义 未包含在服务器配置中
[Tue Dec 08 12:21:18.328407 2015] [core:alert] [pid 30874:tid 140185509488384] [客户端5.161.54.254:46771] /path/to/root/.htaccess: 命令'\ xef \ xbb \ xbfRewriteEngine'无效,可能拼写错误或 由未包含在服务器配置中的模块定义
答案 0 :(得分:2)
无效命令'\ xef \ xbb \ xbfRewriteEngine',可能拼写错误或由服务器配置中未包含的模块定义
命令前面有一些不可见的字符:else if(bfact = true)
{
b = factorial(a);
display.setText(a+" ! = "+b);
}
。删除它们,或者,如果您看不到它们,请重写文件以确保它们已消失。
答案 1 :(得分:0)
试试这个:
RewriteEngine on
RewriteBase /payment
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?link=$1 [L,R=301]