我开始倾向于使用pushstate来驱动我的单页Web应用程序并遇到我的.htaccess问题
我最初想要将所有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]
答案 0 :(得分:2)
由于您想要重定向到根目录,因此您的规则不太正确。试试这个:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ / [L]
答案 1 :(得分:0)
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 /应用程序也处理