我遇到了一个小问题:
我想制作一个简短链接,让用户查看用户“test.test”的图片。
我的代码:
RewriteRule ^(.*)\.(.*)$/images images.php?user-id=$1.$2 [QSA,L]
示例:
website.com/tester.tester/images< ==这必须是最终结果
完整代码:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^(login|settings|friends|gallery|logout|signup|administrator)/?$ $1.php [NC,L]
RewriteRule ^home/?$ profile.php?user-id=home [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^index [NC]
RewriteRule ^(.*)\.(.*)$ profile.php?user-id=$1.$2 [QSA,L]
# RewriteRule ^([A-Za-z0-9-\s]+)\.([A-Za-z0-9-\s]+)$ profile.php?user-id=$1.$2 [QSA,L] #Umlaute müssen gehen!!
答案 0 :(得分:0)
您使用$
提前关闭了表达式,这会导致错误。
这应该适合你:
RewriteRule ^(.*)\.(.*)/images$ images.php?user-id=$1.$2 [QSA,L]
您的文件现在应如下所示:
RewriteEngine on
RewriteRule ^(login|settings|friends|gallery|logout|signup|administrator)/?$ $1.php [NC,L]
RewriteRule ^home/?$ profile.php?user-id=home [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^index [NC]
RewriteRule ^(.*)\.(.*)\/images$ images.php?user-id=$1.$2 [QSA,L]
RewriteRule ^(.*)\.(.*)$ profile.php?user-id=$1.$2 [QSA,L]
# RewriteRule ^([A-Za-z0-9-\s]+)\.([A-Za-z0-9-\s]+)$ profile.php?user-id=$1.$2 [QSA,L] #Umlaute müssen gehen!!
答案 1 :(得分:0)
我尽力而为,希望它能奏效。但我对此并不满意:
更新的代码:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^(login|settings|friends|gallery|logout|signup|administrator)/?$ $1.php [NC,L]
RewriteRule ^home/?$ profile.php?user-id=home [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} ^(.*)\.(.*)\/images [NC]
RewriteRule ^(.*)\.(.*)\/images$ images.php?user-id=$1.$2 [QSA,L]
RewriteCond %{THE_REQUEST} ^(.*)\.(.*)\/images\/ [NC]
RewriteRule ^(.*)\.(.*)\/images\/$ images.php?user-id=$1.$2 [QSA,L]
RewriteCond %{THE_REQUEST} !^(.*)\.(.*)\/images\/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^index [NC]
RewriteCond %{THE_REQUEST} ^(.*)\.(.*) [NC]
RewriteRule ^(.*)\.(.*)$ profile.php?user-id=$1.$2 [QSA,L]
RewriteCond %{THE_REQUEST} ^(.*)\.(.*)\/ [NC]
RewriteRule ^(.*)\.(.*)\/$ profile.php?user-id=$1.$2 [QSA,L]
结果是正确的,但如果用户输入“tester.tester /”,则会加载错误的页面。
这让我烦恼。但是我尝试了,即使这个小东西也可以通过PHP解决(我真的不知道)
感谢所有答案!! :d