apache mod-rewrite - PullRequest
       10

apache mod-rewrite

0 голосов
/ 21 апреля 2011
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([0-9a-zA-Z_\-]+)(|\.html|\.php)$ page.php

это правило .htacess. то, что я хочу, если файл не найден, то перенаправить на page.php. Например, если URL-адрес people.php, people.html не найден, перенаправьте его на страницу page.php.

потому что я также хочу, чтобы эти имена файлов без .php были такими, как люди сначала обращаются к people.php. затем проверьте, существует файл или нет, если не перенаправить на page.php. как добавить одно правило, чтобы люди перенаправляли на people.php

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Эти правила должны работать для вас:

RewriteEngine on
Options +FollowSymlinks -MultiViews

# if there is no . in request then append .php
# it is important to make [L] as last rule here
RewriteCond %{REQUEST_FILENAME} !\.
RewriteRule ^(.+)$ /$1.php [L]

# 404 handling for files that don't exist
# NC is for ignore case comparison
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^.]+\.(html|php)$ /page.php [L,NC]
1 голос
/ 21 апреля 2011

Посмотрите, делает ли это то, что вы ищете:

RewriteEngine on

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule \.(?:html|php)$ page.php
...