.htaccess RewriteRule仅影响目录/ SPA HTML5 pushState友好URL

时间:2017-10-28 03:23:53

标签: php html5 apache .htaccess mod-rewrite

最近转移到Media Temple,它通过发送完整路径而不是相对路径打破了我所有精彩的RewriteRules,因此我需要对mod_rewrite进行重大更改

他们的立场:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.php [L]
RewriteRule ^www/ index.php [L]

我的文件夹和网址结构,其中真实文件夹以粗体显示:

/

/万维网

/网络/经验

/网络/经验/项目段塞 - 即JS-手柄

/ www / project-files-folder / css等

/ assets / js,css等

/ www / www / experience / project-slug-that-js-handles 成功重写到/index.php,但是来自/ www请求的资产/ experience / project-slug-that-js-handles也被重写为/index.php,这就是问题所在。

那么可以告诉RewriteRule只影响目录中的文件夹,还是我需要更好的条件/规则?

由于

1 个答案:

答案 0 :(得分:0)

实际上你的最后一条规则是罪魁祸首,导致css / js加载错误:

RewriteRule ^www/ index.php [L]

用以下代码替换您的代码:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule ^ index.php [L]

RewriteRule ^www/?$ index.php [L,NC]

^www/?$仅匹配/www/而不是/www/

中的所有内容