一开始我希望你注意,我确实尝试在 google 或 stackoverflow 中找到解决方案。我找到了一些提示,但它们对我不起作用,或者我只是没有按照说明进行操作。
所以,这是我的网站目录:
www.domain.pl/index.php <--index file
www.domain.pl/images/ <--images folder
www.domain.pl/styles/ <--styles folder, for now just 1 css file
www.domain.pl/script/ <--scripts folder, js files, and 1 php file called with include
www.domain.pl/font/ <--font files
现在,当我打开我的网站时,www.domain.pl
它www.domain.pl/index.php
就像一个魅力。但是我希望能够添加一些参数,例如www.domain.pl/index.php?action=dosmth
,但它对用户来说看起来不太好,所以这就是我想使用mod rewrite的地方。
现在是棘手的部分,我希望它看起来像www.domain.pl/index/actionparam/
但是当我这样做时,我在控制台中收到错误,说我的图像、脚本和 css 无法加载/找到。(我尝试像那样重写它:RewriteRule ^index/([^-]+)/script/jquery-1.7.1.min.js$ script/jquery-1.7.1.min.js [L]
但我不能将它用于每个图像、脚本、css 或字体文件。需要更好的方法。
所以,到目前为止,我的 mod 重写了:
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.pl/$1/ [L,R=301]
RewriteRule ^index.html$ index.php [L]
RewriteRule ^index/$ index.php [L]
RewriteRule ^index/([^-]+)/$ index.php?action=$1 [L]
第一部分,如果用户没有把它放在那里,我试图在 url 的末尾添加“斜杠”。
http://domain.pl/index
->http://domain.pl/index/
或
http://domain.pl/index/myaction
->http://domain.pl/index/myaction/
问题
是否可以在重写时以某种方式跳过带有图像、脚本等的文件夹?或者我怎么能一次重写所有图像?
额外的问题
http://domain.pl/myaction/
直接重定向到http://domain.pl/index.php?action=myaction
,而不需要放在/index/
那里?是的,我正在学习 mod 重写。