下面是我的PHP代码(qs.php)。 此文件包含url链接。 使用SLUG创建的漂亮链接。

<html>
<head></head>
<body>
    <?php
    function create_slug($string){
       $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
       $slug = strtolower($slug);
       return $slug;
    }
    $slugurl=  create_slug('SLUG-text-testing-purpose-only');

    $file = 'qs1'; //this is a php file qs1.php
    $id = '12345678'; //testing ID
    $complete_url = $file."/".$id."/".$slugurl;

    ?>
    <a href ="<?php echo $full;?>"> This is a test link created by slug</a>

</body></html>

上面的链接显示如下 - http://localhost/qs/qs1/12345678/slug-text-testing-purpose-only

编辑

QS是放置所有文件的目录。 QS1是一个php文件(qs1.php)

我想从上面的链接12345678 & slug-text-testing-purpose-only获得两个变量。 因为qs1.php是我从$_GET['var1'] & $_GET['var2'];得到这两个变量的文件$_GET['var1'] & $_GET['var2'];

我知道它可以通过.htaccess来实现。 我尝试了多种选择,但他们没有工作,因为我得到404。

.htaccess文件放在QS目录中。

以下是我试过的选项。

RewriteEngine On
    RewriteRule ^qs/([0-9]+)/([^/]+)$ qs1.php?var1=$1&var2=$2 [L]

    RewriteRule ^/([^/]*)/([^/]*)$ /qs1.php?var1=$1&var2=$2 [L]

    RewriteRule  ^qs/([^/]+)/([^/]+)/?$ /qs1.php?var1=$1&var2=$2  [QSA,L]
    RewriteRule /qs/(\d+)/(.*) qs1.php?id=$1&slug=$2    [QSA,L]

我是htaccess和url重定向的新手。

请指教。

谢谢

===============>>#1 票数:2 已采纳

您可以将此代码放在/qs/.htaccess

RewriteEngine On
RewriteBase /qs/

RewriteRule ^([^/]+)/(\d+)/([^/]+)$ $1.php?var1=$2&var2=$3 [NC,L]

现在,您可以访问http://localhost/qs/qs1/12345678/slug-text-testing-purpose-only ,您将获得与/qs/qs1.php?var1=12345678&var2=slug-text-testing-purpose-only相同的内容/qs/qs1.php?var1=12345678&var2=slug-text-testing-purpose-only

===============>>#2 票数:0

RewriteEngine On
RewriteRule    ^qs/qs1/(\d+)/(.+)$    qs1.php?var1=$1&var2=$2    [NC,L]

你可以在这里玩它: http//htaccess.madewithlove.be

  ask by Ironic translate from so

未解决问题?本站智能推荐:

2回复

使用.HTaccess进行URL重定向和重写

一段时间以来,我一直在研究使用.htaccess ,以使网站上的URL更加用户友好。 但是,在浏览了互联网上无穷无尽的信息流之后,我似乎找不到一种用简单的英文解释命令的工作方式来进行以下操作的方法。 我的托管服务提供商的技术支持团队建议我咨询专业的Web开发人员,因此我认为这里是一个
1回复

使用.htaccess重写重定向URL的规则

我正在使用.htaccess重定向我网站上的URL,以避免出现诸如page1.php之类的链接。 我打算在根域上使用子文件夹engine/index.php来处理重定向的URL。 例如,我希望链接localhost/user重写为localhost/engine/index.php?
1回复

htaccess网址重写和重定向不起作用

我有一个已更新的网站。 我想使旧的url有效,我想重定向其中一些,因此来自Google搜索的链接仍然有效,并使用.htaccess重写其他url的URL。 例如: 一种重写是a.com/services到a.com/consultancy 一种重定向是将a.com/se
2回复

使用htaccess重定向和重写多个URL

我正在尝试重定向和重写以下URL,但在某些情况下,我想保留一些值,但对URL隐藏。 这是我想要获得的示例: 我有以下网址: www.mysite.com/?a=blue www.mysite.com/?a=red 等等 www.mysite.com/?a
1回复

使用.htaccess的URL重写/重定向/多个条件限制

服务器版本:Apache / 2.4.18(Win32)OpenSSL / 1.0.2e PHP / 7.0.8 我意识到这个问题已经问了无数次了,虽然我有一些零件的解决方案,但是我没有一个所有运动的零件都能正常工作的解决方案。 我有4种url 首先...(索引文件重定向)
1回复

使用htaccess将页面重定向到url重写中的索引页面

嗨,我是url重写的新手,请帮助解决此错误 我上面的代码显示了有关.htaccess文件的信息。 我的原始网址是www.abcd.com/chanel.php?user=ravi 我想将网址上方的内容改写到www.abcd.com/ravi但将.htaccess文件上方的内容
1回复

htaccess重定向以获得友好的URL

我目前有一个运行良好的.htaccess文件。 到目前为止,我有: 我需要第一行,因为我使用GoDaddy托管。 第一部分是将www.mydomain.net重定向到mydomain.net。 第二部分是将mydomain.net/abcd重定向到mydomain.net/abcd
1回复

重定向到带有.htaccess的URL

我的.htaccess文件当前看起来像这样: 它使URL从domain.com/?page=2类的domain.com/?page=2到domain.com/page/2/都是友好的。 但是,有没有一种方法可以编辑此.htaccess文件,使其自动将包含?page=2 (或任何页码
1回复

htaccess中的URL重定向

我有一个已设置并在实时服务器上运行的htaccess文件。 一切正常,但我必须向其中添加一些特定的URL重定向。 特定的重定向已在IIS web.config文件中设置。 一个例子: 我很难将其翻译为mt htaccess文件。 我试过了: 显然,program_cons
1回复

.htaccess网址重写问题-将每个请求重定向到子目录

我有以下htaccess文件,该文件将每个链接重定向到/ love / tribe-world目录(还包括root)。 我已经写了从URL隐藏/ love / tribe-world目录的上述规则。 我想要使​​用网址www.example.com/campaigners/start-