简体   繁体   中英

Can't rewrite php url using htaccess

This will be a niche question but I am having trouble rewriting my url. I am trying to rewrite from /view.php?user=Alex0111 to view/Alex0111. I also have a second get variable of /view.php?user=Alex0111&id=5 which I want to be view/Alex0111/5 Here are the contents of my .htaccess file

DirectoryIndex Home.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^view/([0-9A-Za-z]+) view.php?user=$1 [NC,L] #doesn't work causes internal error

I've checked this line of code multiple times to the tutorial I am following but I am missing the mark on something.

Replace both of your rewrite rules with:

RewriteRule ^view/(.+)/(.+)  view.php?user=$1&id=$2  [NC,END,QSA]

Your first rewrite rule will interfere because it will rewrite the path as Markus mentioned in comments.

The [END] flag will throw an error if you have an old Apache version. In that case, use the [L]

The [QSA] flag tells the server to add any additional query parameters that the user sent. eg: view/Alex01/5? param=value

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