【发布时间】:2014-04-19 20:01:16
【问题描述】:
原文:http://www.mysite.my/page.php?id=688
带html func代码:
{capture name=some_content assign=page_url}
{if $seo_settings.enable_mod_rewrite}{seo->makeDetailsLink p1=`$v.id` p2=`$v.title`}{else}{$live_site}/page.php?id={$v.id}{/if}
{/capture}
启用 URL 友好选项后。
目前,它的工作方式如下:www.mysite.com/item-name123/page.html。但是,我尝试将page.html$ 删除为page$,但它仍然显示旧链接。我需要重新编写指向www.site.com/item-name123/page 的url 链接以使其正常工作。
如何将其转换为www.site.com/page/item-name123,点击文本后会自动找到正确的链接,如下所示:www.site.com/page/item-name123?
当前代码:
RewriteRule ^([0-9]+)-([^\/]+)?/page.html$ page.php?id=$1 [nc,qsa]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
已更新:abc 至 item-name123(以便更好地理解)
.htaccess 的完整代码
【问题讨论】:
-
您必须了解查询中的变量。我现在不明白。你有这个模式:
^([0-9]+)-([^\/]+)?/page.html$。您提供的 URL (item-name123/page.html) 与此正则表达式不匹配。这将匹配:1-item/page.html或此:123-sdfdfs,以及此:1-/page.html;,但不是您的网址。此规则适用于您的网址:RewriteRule ^(?:[A-Za-z0-9]+-)?([0-9]+)/page.html$ page.php?id=$1 [nc,qsa]。并不是说第一组是非捕获的。
标签: html .htaccess mod-rewrite