PHP переписать URL htaccess несколько условий - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь переписать URL-адреса, но я не добился большого прогресса. Я много читал и пытался, но мне не удалось сделать то, что я хочу. Я был бы рад, если бы кто-то дал идею, как это может быть. Что я хочу сделать, это:

  1. Удалить расширение " .php ", например, " site.com / о "
  2. Если я наберу " site.com / index.php " или " site.com / index ", чтобы перенаправить на " site.com "
  3. Если я наберу " site.com / profile.php? Profile = alex ", чтобы переписать URL-адрес на " site.com / profile / alex "

Также сохраняйте путь к файлам, которые я включаю, таким как css, js, images или php.

Что я пробовал отдельно:

1. RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]

2. RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]

3. RewriteEngine On RewriteRule ^profile/(.+)[/]?$ profile.php?profile=$1

1 Ответ

0 голосов
/ 27 октября 2018

Вы можете иметь эти правила в корне сайта .htaccess:

Options -MultiViews
RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+profile\.php\?profile=([^\s&]+)\s [NC]
RewriteRule ^ /%1? [R=302,L,NE]

# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index|(\S+?))\.php[\s?] [NC]
RewriteRule ^ /%1%2 [R=301,L,NE]

# To internally forward /dir/file to /dir/file.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ profile.php?profile=$1 [L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...