我知道这些重写规则问题遍布StackOverflow - 我已经阅读了所有这些问题。我已经在http://htaccess.madewithlove.be/上测试了我的htaccess代码,它又回来了。 但在我的网站上它不起作用。
这是代码(目前在/ new /文件夹下的网站上):
Options +FollowSymLinks
RewriteEngine On
RewriteBase /new
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php
这是网站: http://strattonindustrial.com/new/property/page
我希望 / page / 在后台重定向到 /page.php ,但在网址中显示/ page /,但它会给我一个404页面,所以没有重定向发生。我基本上试图从文件名中删除“.php”并使其对SEO友好。
此外,我已经打电话给Godaddy并检查以确保mod_rewrite已加载并打开。他们找不到任何不起作用的东西。 所以它必须是我的代码,但对于我的生活,我无法理解。
答案 0 :(得分:2)
以下是您需要的代码:
RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
RewriteBase /new
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]
答案 1 :(得分:1)
我终于明白了!!!!从StackOverflow上的这个答案(最后一个答案):godaddy mod_rewrite not working on subfolder
显然,对于godaddy(也许是其他人),你必须添加:
Options -Multiviews
到.htaccess页面的顶部以使其工作。现在它就像一个魅力。