PHP довольно url сочетание двух правил переписывания модов?


У меня есть это .htaccess код в корневой папке, чтобы заменить этот url: localhost/mysite/profile.php?username="someone", чтобы стать localhost/mysite/someone.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mysite/profile.php?username=$1

Это работает нормально, но то, что я хочу, это включить подстраницы, такие как, например, О странице, чтобы быть localhost/mysite/about вместо localhost/mysite/about.php. И подстраницы тоже находятся в корневой папке.

Как я могу добиться этих двух переписок?

3 2

3 ответа:

Вы можете иметь этот код в mysite/.htaccess:

RewriteEngine On 
RewriteBase /mysite/

# add .php internally to files
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

# handles profile URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ profile.php?username=$1 [L,QSA]

Попробуйте ниже кода это работает нормально для меня.

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

Попробуйте Это

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mysite/([A-Za-z0-9-]+)$ /mysite/profile.php?username=$1