为新的永久更改 .htaccess link
Change .htaccess for new permanent link
我有一个这样的页面link:www.mysite/lab/index.php?pagina=blablabla
我使用 .htaccess
设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-Z0-9]+)$ ./index.php?pagina= [QSA,L]
如果我继续 www.mysite/lab/blablabla
我看不到我的页面,但我有错误 page not found
我在 www.mysite/lab/
和其他 3 个文件夹中有页面,我可以在 .htaccess 中使用 ELSE IF 吗?
您的重写规则采用整个请求路径并将其用作 </code> 的参数。您只需要捕获最后一个斜杠右边的内容,而不是整个路径。</p>
<pre><code>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule /lab/([A-Za-z0-9]+)$ index.php?pagina= [QSA,L]
您还可以使用 RewriteBase
指定重写的基础,这实际上允许您跳过 /lab/
部分。
RewriteEngine On
RewriteBase /lab/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ([A-Za-z0-9]+)$ index.php?pagina= [QSA,L]
您拒绝了正则表达式中的 /
。您要么需要按照 holodoc 所说的进行操作,要么将正则表达式修改为
^([A-Za-Z0-9/]+)$
因为您只需要一个 htaccess
来处理您所有相关的文件夹,您可以将这段代码放在您的 htaccess 中(它必须在根文件夹中)
RewriteEngine On
RewriteBase /mysite/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(lab|blog|faq|presentazione|feed|editori)/([^/]+)$ /index.php?pagina= [L]
我有一个这样的页面link:www.mysite/lab/index.php?pagina=blablabla
我使用 .htaccess
设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-Z0-9]+)$ ./index.php?pagina= [QSA,L]
如果我继续 www.mysite/lab/blablabla
我看不到我的页面,但我有错误 page not found
我在 www.mysite/lab/
和其他 3 个文件夹中有页面,我可以在 .htaccess 中使用 ELSE IF 吗?
您的重写规则采用整个请求路径并将其用作 </code> 的参数。您只需要捕获最后一个斜杠右边的内容,而不是整个路径。</p>
<pre><code>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule /lab/([A-Za-z0-9]+)$ index.php?pagina= [QSA,L]
您还可以使用 RewriteBase
指定重写的基础,这实际上允许您跳过 /lab/
部分。
RewriteEngine On
RewriteBase /lab/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ([A-Za-z0-9]+)$ index.php?pagina= [QSA,L]
您拒绝了正则表达式中的 /
。您要么需要按照 holodoc 所说的进行操作,要么将正则表达式修改为
^([A-Za-Z0-9/]+)$
因为您只需要一个 htaccess
来处理您所有相关的文件夹,您可以将这段代码放在您的 htaccess 中(它必须在根文件夹中)
RewriteEngine On
RewriteBase /mysite/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(lab|blog|faq|presentazione|feed|editori)/([^/]+)$ /index.php?pagina= [L]