.htaccess ReWriteRule - 在此服务器上找不到请求的URL <rewritten filename =“”>

时间:2016-01-16 23:41:22

标签: php apache .htaccess mod-rewrite

我已经在WAMP中对此进行了测试,但我无法让它发挥作用。由于我收到的错误消息,我认为WAMP设置正确,当我不使用.htaccess文件时,它没有问题。

我有一个文件名,我用它来测试名为Feedback.php。而不是显示为 www.mysite.com/Feedback.php 。我试图让它成为 www.mysite.com/Feedback

.htaccess文件

RewriteEngine on
RewriteRule ^Feedback.php/?$ Feedback [NC]

我收到的错误消息是

  

&#34;未找到
在此服务器上找不到请求的URL /反馈。&#34;

reWriteRule是否需要两个文件才能工作?

我也试图让我的index.php工作到www.mysite.com,这可能是一个不同的怪物。

我的导航栏链接应该是什么?现在他们<a href="Feedback.php">Feedback</a>一旦我开始工作,href或许应该是href="Feedback"吗?

编辑:我有ReWriteRule变量向后。而不是

RewriteRule ^Feedback.php/?$ Feedback [NC]

我应该

RewriteRule ^Feedback/$ /Feedback.php [NC,L]

重写看起来没有发生,因为它仍然读取localhost / Feedback.php

1 个答案:

答案 0 :(得分:1)

您可以使用此功能从您的网页中删除.php扩展名,并将index部分省略到您的网站:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{THE_REQUEST} /index
RewriteRule ^index$ http://yourwebsite.com/         [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php                            [L]