2013-09-11 114 views
0

我在根文件夾中有文件。 jobs.phpcontact.php.htaccess刪除.php並強制結尾斜槓

我希望能夠使用.htaccess刪除.php擴展名並強制結尾斜槓/。因此,www.domain.com/jobs/www.domain.com/contact/轉到它們各自的頁面。

另外,我想jobs.domain.com指向www.domain.com/jobs/

<IfModule mod_rewrite.c> 
    Options +SymLinksIfOwnerMatch 
    RewriteEngine On 
    RewriteBase/

    RewriteRule ^(rosquillos)/$ $1 [L,R=301,NC] 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php 
</IfModule> 

這是我這麼遠,並不亞於我試試。我似乎無法得到它的工作。

任何幫助都會很棒。

編輯:

我想重新說明我的問題。現有的代碼爲我刪除了.php擴展,我現在真正需要的是一個額外的規則,將子域指向正確的文件:ie。 jobs.domain.com指向jobs.php。我可以生活在沒有尾隨的斜線。

+0

'RewriteRule^contact/$ contact.php' for job'RewriteRule^jobs/$ jobs.php' –

+0

[使用mod \ _rewrite去除.php擴展名](http://stackoverflow.com/questions)/4908122 /刪除-php-extension-with-mod-rewrite) – xdazz

回答

2

您的條件:如果您的網址與斜線結尾

RewriteCond %{REQUEST_FILENAME}\.php -f 

將失敗。但是,如果你只有jobscontact那麼你忍不住會想:

RewriteEngine On 

# add trailing slash and redirect browser 
RewriteRule ^([^/]+)$ /$1/ [L,R=301] 

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

# redirect direct access to php files: 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)\.php 
RewriteRule^/%1/ [L,R=301] 

哦,我忘了:

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule^/%1.php [L] 

假設*.domain.com具有相同的文檔根目錄爲www.domain.com

+0

這一個有強制所有鏈接包含尾部斜槓的附加好處。 –

+0

但我沒有/只是/工作和聯繫。我怎樣才能讓它接受任何頁面?只需將其替換爲'*'? – clueless

+0

@DumbAsker嘗試用'([^ /] +)替換'(jobs | contact)'' –

相關問題