我正在使用这两行重写任何网址,例如www.example.com/spyke(其中spyke是用户名,可以是任何用户名)..
RewriteCond %{REQUEST_URI} ^/([^/]+)? [NC]
RewriteRule ^/([^/]+)? http://www.example.com/index.php?id=82&user=$1 [L,R=301]
此ALMOST有效,但系统当前重定向到的URL是:
www.example.com/index.php?id=82&user=index.php
..而不是
www.mydomain.com/index.php?id=82&user=spyke
1)所以我想将www.mydomain.com/spyke重写为www.example.com/index.php?id=82&user=spyke
..有谁知道如何实现这个目标?
2)另外,我希望用户在地址栏中看到www.example.com/spyke
而不是www.example.com/index.php?id=82&user=spyke
- 这是否可行?
感谢!!!!!
罗埃尔
这是我的(更新的)htaccess文件btw:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/typo3$ - [L]
RewriteRule ^/typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php
RewriteRule ^/([a-zA-Z0-9_-]+)? http://www.example.com/index.php?id=82&user=$1 [L,R=301]
</IfModule>
...
但这只会导致此链接: http://www.example.com/index.php?id=82&user=index
答案 0 :(得分:2)
使用此htaccess:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?id=82&user=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?id=82&user=$1 [L]
此网址:&#34; www.example.com/spyke"请求的强>
此htaccess加载&#34; index.php?id = 82&amp; user = spyke&#34;而不是那个!
此行加载文件(如果存在)!
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
如果请求的网址不是文件,则加载&#34; index.php?id = 82&amp; user = [string]&#34;
答案 1 :(得分:0)
试试这个:
RewriteRule ^author/(.+)$ index.php?pagename=books&author=$1
我在这里找到了它:Redirect number 5
在您的情况下,您应该使用:
RewriteRule ^(.+)$ index.php?id=82&user=$1