2013-06-05 70 views
0

我想舉例www.mydomain.com/about.php爲www.mydomain.com/about。.htaccess rewrite = 404頁面

基於一些博客閱讀,

在這裏我有什麼對我的httpd.conf

<Directory "var/www/mydomain"> 
Options Indexes FollowSymLinks Includes ExecCGI 
AllowOverride All 
Allow from all 
Order allow, deny 
RewriteEngine On 
</Directory> 

我的.htaccess文件

Order deny,allow 
DirectoryIndex index.php 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

www.mydomain.com/about.php仍然有效,但/ about有404 URL未找到頁面。

上述配置有問題嗎?

回答

0

在你的最後一行,嘗試:

RewriteRule ^(.*)$  $1.php [L] 

(注意^和去除R = 301)

如果它不工作,嘗試在.htaccess文件刪除所有以前行。只保留RewriteEngine On

+0

P兩次嘗試均顯示404個URL未找到頁面。 – hangee

+0

對不起,我編輯了代碼。再試一次 –

+0

仍顯示404頁面。 – hangee

0

您的前兩個RewriteRules要求在名稱後面有一個/作爲最後一個字符。您可能想要使該選項成爲可能:

RewriteRule ^([^/]+)/?$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php 

這可能是您在第一個重寫組中不匹配/ about的原因。我認爲你正在嘗試在第二個重寫組中做一些不同的事情,但是不清楚什麼(提示:對你做的事情的評論或者兩個是相當有幫助的)。