变量.htaccess后的字符串

时间:2015-03-28 11:51:09

标签: .htaccess webserver

我遇到了一个小问题:

我想制作一个简短链接,让用户查看用户“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!!

2 个答案:

答案 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