我希望www.example.com/about.PHP只是www.example.com/about
我创build了一个.htaccess文件,并将其放在我的服务器的根目录下。 我正在使用Linux共享主机。 PHP版本5.2
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.PHP -f RewriteRule ^(.*)$ $1.PHP
看来,这个代码应该正常工作,但由于某种原因,它不。 当我尝试导航到没有.PHP扩展名的页面时,出现404错误。
这也是我的标记:
用htaccess阻止特定的文件扩展名?
如何将htaccess重写规则应用于包含换行符(%0A)的URL?
我怎样才能有一个有条件的.htaccess块?
Htaccesscaching问题
.htaccess – 将子域redirect到文件夹
<nav> <div class="container"> <ul> <li><a href="index.PHP" <?PHP if (strpos($_SERVER['PHP_SELF'],'index.PHP')) echo 'class="current-nav"';?>>home</a></li> <li><a href="about.PHP">about</a></li> <li><a href="services">our services</a></li> <li><a href="portfolio" <?PHP if (strpos($_SERVER['PHP_SELF'],'portfolio.PHP')) echo 'class="current-nav"';?>>portfolio</a></li> <li><a href="testimonials" <?PHP if (strpos($_SERVER['PHP_SELF'],'testimonials.PHP')) echo 'class="current-nav"';?>>testimonials</a></li> <!--<li><a href="#">client area</a></li>--> <li><a href="contact" <?PHP if (strpos($_SERVER['PHP_SELF'],'contact.PHP')) echo 'class="current-nav"';?>>Contact</a></li> <li><a href="order" <?PHP if (strpos($_SERVER['PHP_SELF'],'order.PHP')) echo 'class="current-nav"';?>><strong>Free Quote</strong></a></li> </ul> </div> </nav><!--/navigation-->
你可以看到我尝试在链接中使用PHP扩展,也尝试没有。 与PHP扩展的链接转到页面,但不要删除扩展名。
我做了一个testing,看是否通过放入一些垃圾并返回500错误启用module_rewrite。
如何阻止100,000+个人IP地址
如何指向所有子域index.PHP
本地ubuntu服务器上的URL重写不起作用
在.htaccess中使用基于环境variables的RewriteCond
用查询string重写URL
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / ## hide .PHP extension # To externally redirect /dir/foo.PHP to /dir/foo RewriteCond %{THE_REQUEST} ^[AZ]{3,}s([^.]+).PHP [NC] RewriteRule ^ %1 [R,L,NC] ## To internally redirect /dir/foo to /dir/foo.PHP RewriteCond %{REQUEST_FILENAME}.PHP -f RewriteRule ^ %{REQUEST_URI}.PHP [L]
所以经过与谷歌长期回合,我终于想出了这一个。 这与Godaddy共同主办合作。 它删除PHP文件扩展名,所以http://yoursite.com/about.PHP成为http://yoursite.com/about
Options -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f #If requested is not a filename... RewriteCond %{REQUEST_FILENAME} !-d #And not a directory RewriteRule ^(.*)$ $1.PHP [L] # perform this redirect
我也有这个问题,但我发现这似乎解决了GoDaddy .htaccess问题。
# Fix Rewrite Options -Multiviews # Mod Rewrite Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.PHP -f RewriteRule ^(.*)$ $1.PHP
粘贴在我的.htaccess文件的一切为我工作…
## 301 Redirects RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*).asp$ $1? [R=301,NE,NC,L]
你的重写规则是不正确的,这是错误的。 试试这个:
RewriteRule ^(.*).PHP$ /$1 [L,R=301]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。