我想重写像这样的网址
site.com/eng?sentence=a-sentence
像是:
site.com/eng/a-sentence
我只想更改浏览器 url 中显示的文本,我不想要重定向。
RewriteCond %{THE_REQUEST} ^GET\s/+eng?sentence=([^/?&\s]+) [NC]
RewriteRule ^ /eng/%1 [NC,L,NE]
我已经摆弄了它,比较了我发现很长时间的其他重写规则,但就是不能让它工作,我真的不知道为什么。每次测试时,我都尝试从我的 htaccess 中删除所有其他重写。
这是我的 htaccess 文件:
# Use PHP5.3 Single php.ini as default
AddHandler application/x-httpd-php54s .php
AddType application/x-httpd-php .htm .html
Options -Indexes -MultiViews
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{THE_REQUEST} ^GET\s/+eng?sentence=([^/?&\s]+) [NC]
RewriteRule ^ /eng/%1 [NC,L,NE]
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
最好,如果你能修正我的规则,而不是自己写一个我不太可能理解的规则,那就太好了。