无法使用 URL 重写将关键字添加到 URL
Unable To Add keywords to URL using URL Rewriting
我正在根据以下建议更新我的问题
我的 .htaccess 文件重写代码 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
</IfModule>
但是上面的 .htaccess 规则并没有改变我的 url 。如果您转到下面的 url,它不会按照规则
重写 url
Url - http://expertsusa.org/SearchResult.php?category_slug=t
Url 应该改写为
http://expertsusa.org/SearchResult/t
顺序很重要
<IfModule mod_rewrite.c>
RewriteEngine On
# browser requests PHP
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ / [L,R=301]
#It is to check whether Request if for PHP File
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /.php [L]
</IfModule>
试试这些规则:
Options -MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} /SearchResult\.php\?category_slug=([^\s&]+) [NC]
RewriteRule ^ /SearchResult/%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,NE,L]
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ .php [L]
首先在您的 .htaccess 文件中尝试下面的代码 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/SearchResult/ SearchResult.php?id= [NC,L]
</IfModule>
上面的代码用于 SearchResult.php 页面 要添加更多页面,您可以理解并使用上面类似类型的代码,例如 About.php 您可以在下面使用 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/SearchResult/ SearchResult.php?id= [NC,L]
RewriteRule ^/About/ About.php [NC,L]
</IfModule>
在您的情况下,在 .htaccess 文件中进行上述更改后,您的网址将按您的需要工作。但是你的页面 css 在此之后变得笨拙,因为你的 js 特别是你的 css 文件没有根路径尝试下面的解决方案 -
转换以下代码行
<link href="css/bootstrap.min.css" rel="stylesheet" async>
<script src="js/jquery.min.js" ></script>
<script src="js/bootstrap.min.js" ></script>
<script src="js/alertify.min.js" type="text/javascript" ></script>
到下面
<link href="/css/bootstrap.min.css" rel="stylesheet" async>
<script src="/js/jquery.min.js" ></script>
<script src="/js/bootstrap.min.js" ></script>
<script src="/js/alertify.min.js" type="text/javascript" ></script>
我正在根据以下建议更新我的问题
我的 .htaccess 文件重写代码 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
</IfModule>
但是上面的 .htaccess 规则并没有改变我的 url 。如果您转到下面的 url,它不会按照规则
重写 urlUrl - http://expertsusa.org/SearchResult.php?category_slug=t
Url 应该改写为 http://expertsusa.org/SearchResult/t
顺序很重要
<IfModule mod_rewrite.c>
RewriteEngine On
# browser requests PHP
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ / [L,R=301]
#It is to check whether Request if for PHP File
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /.php [L]
</IfModule>
试试这些规则:
Options -MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} /SearchResult\.php\?category_slug=([^\s&]+) [NC]
RewriteRule ^ /SearchResult/%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,NE,L]
RewriteRule ^SearchResult/(.*)$ SearchResult.php?category_slug= [QSA,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ .php [L]
首先在您的 .htaccess 文件中尝试下面的代码 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/SearchResult/ SearchResult.php?id= [NC,L]
</IfModule>
上面的代码用于 SearchResult.php 页面 要添加更多页面,您可以理解并使用上面类似类型的代码,例如 About.php 您可以在下面使用 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/SearchResult/ SearchResult.php?id= [NC,L]
RewriteRule ^/About/ About.php [NC,L]
</IfModule>
在您的情况下,在 .htaccess 文件中进行上述更改后,您的网址将按您的需要工作。但是你的页面 css 在此之后变得笨拙,因为你的 js 特别是你的 css 文件没有根路径尝试下面的解决方案 -
转换以下代码行
<link href="css/bootstrap.min.css" rel="stylesheet" async>
<script src="js/jquery.min.js" ></script>
<script src="js/bootstrap.min.js" ></script>
<script src="js/alertify.min.js" type="text/javascript" ></script>
到下面
<link href="/css/bootstrap.min.css" rel="stylesheet" async>
<script src="/js/jquery.min.js" ></script>
<script src="/js/bootstrap.min.js" ></script>
<script src="/js/alertify.min.js" type="text/javascript" ></script>