.htaccess modifie un chemin vers une chaîne de requête

J’ai des fichiers dans example.com/

contact.php recent.php videos.php watch.php 

example.com/page/ > /page/ n’est pas un dossier. mais je veux travailler d’autres dossiers

contact.php (pas de pagination)

 example.com/page/contact 

recent.php ( pagination > recent.php?page=2 )

 example.com/page/recent example.com/page/recent?page=2 

watch.php ( no pagination > watch.php?title=drama-name )

 example.com/page/watch/drama-name 

videos.php ( pagination with get name > videos.php?name=drama-name&page=2 )

 example.com/page/videos/drama-name example.com/page/videos/drama-name?page=2 

Voici mes codes d’access complets (example.com/.htaccess)

 RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,NE,L] RewriteRule ^page/playlist$ /playlist.php [L] RewriteRule ^page/submit$ /submit.php [L] RewriteRule ^page/contact$ /contact.php [L] RewriteRule ^page/search$ /search.php [L] RewriteRule ^page/recent$ /recent.php [L] RewriteRule ^page/watch/([^/]+)? /watch.php?title=$1 RewriteRule ^page/videos/([^/]+)? /videos.php?name=$1 

Mais pas travailler dans /page/videos/drama-name?page=2 comment le réparer? il a un autre problème?

Vous pouvez combiner regex et raccourcir vos règles dans votre fichier .htaccess avec l’indicateur QSA :

 RewriteEngine on RewriteBase / # add www in host name RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*?)/?$ http://www.%{HTTP_HOST}/$1 [R=301,NE,L] # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ /$1 [NE,R=301,L] RewriteRule ^page/(submit|contact|search|recent|playlist)/?$ $1.php [L,NC] RewriteRule ^page/(videos|watch)/([^/]+)/?$ $1.php?title=$2 [L,QSA,NC]