使用htaccess + pushstate进行无形重定向,出现问题

我已经开始深入研究使用pushstate来驱动我的单页Web应用程序,并且遇到了我的.htaccess问题。

我最初想将所有url调用重定向到网站的根文件夹,但是将旧的url保留在地址栏中供jquery使用并通过pushstate加载。

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ /$1 [L]

这是我的重定向,但问题是当jquery尝试获取动态内容时,它会弹出500错误。另外,当我导航到任何子目录时,浏览器也会吐出500错误。

+我的网站位于子域中。

任何帮助,将不胜感激。


编辑:

感谢您的回复@anubhava。

我没有运气尝试过这个“ RewriteRule ^ / [L,R]”。我什至还添加了“ [L,R = 301]”。

重要的是要说这是我正在处理的子域?例如:sub.domain.com

我已经在具有以下内容的非子域站点上完成了此操作,并且没有任何问题:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php [L]

RewriteCond %{REQUEST_URI} !^/ [NC]
RewriteRule ^(.*)$ /$1 [L,NC,R=301]
Options +FollowSymLinks  
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ / [L]

ErrorDocument 404 /404/

谢谢大家的答复。我是新手,并且可以理解,您确实可以将任何类型的请求重新路由到/ root目录。但是,如果请求是针对已经存在的文件夹,则重新路由将不起作用。除非您删除该RewriteCond %{REQUEST_FILENAME} !-d行。

但是删除该行也将禁止您的应用发送或接收ajax调用。您得到的响应是您的index.php。

我在应用程序中进行了网址重新路由,以查找具有特定关键字的网址,并从另一个文件夹加载了匹配的内容。

****带有404的行将某人重定向到该应用还可以处理的我的/ 404 /

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章