简体   繁体   中英

Htaccess rewrite with id

i got a problem with rewriting my edit.php?id=1 to edit/id/1 . Right now i have the following in my .htaccess file:

RewriteEngine On
RewriteBase /

RewriteRule ^edit/id/([^/.]+)$ edit.php?id=$1 [NC]

This doesn't change the url. Can something see what i do wrong?

Give this a try and see how it works for you.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)/edit/id/([^/.]+)$ $1/edit.php?id=$2 [NC,L]
   </IfModule>

OR you can do this if you only have a couple of directories the same. The will go in the root .htaccess file.

  <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(profiles|customers|test)/edit/id/([^/.]+)$ $1/edit.php?id=$2 [NC,L]
       </IfModule>

You need one additional rule to change the URL externally. This should be placed in root .htaccess:

RewriteEngine On
RewriteBase /

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

RewriteRule ^([^/]+)/edit/id/([^/.]+)$ $1/edit.php?id=$2 [NC,L,QSA]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM