0

我的根文件夹中有文件。jobs.php, contact.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为我删除了扩展名,我现在真正只需要一个将子域指向正确文件的附加规则:即。jobs.domain.com指向jobs.php。我可以没有尾随的斜线。

4

1 回答 1

2

你的情况:

RewriteCond %{REQUEST_FILENAME}\.php -f

如果您的 URL 以斜杠结尾,则会失败。但是,如果您只有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

于 2013-09-11T03:25:36.247 回答