Jump to content
Sign in to follow this  
Amateur

Как сделать ссылки вида /struktura-sajta-i-chpu-razlichnyx-cms/

Recommended Posts

Здравствуйте.

Подскажите как сделать ссылки вида 

http:// www.example.com/struktura-sajta-i-chpu-razlichnyx-cms/ 

  ?

 

P.S.: php, htaccess, самописные движки

Share this post


Link to post
Share on other sites

Что то я не пойму...а при написании ЦМС об этом подумать нельзя было?)))

В .htacess можно сделать, но без пациентов ничего сказать нельзя

Share this post


Link to post
Share on other sites

На ASP.NET4 решается несколькими строками

 

global.asax

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
   System.Web.Routing.RouteTable.Routes.MapPageRoute("Articles", "article/{title}", "~/translate_url.aspx")
End Sub
 
translate_url.vb
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
   Dim articleID As String = GetArticleID(Page.RouteData.Values("title"))
   if articleID <> "" then
      Server.Execute("/article/?id=" + articleID)
   End If
End Sub

 

Это на VB, на C# то же самое с точностью до синтаксиса. Функцию поиска нужной статьи в базе по "translitu-v-adrese-stranitsy" придется написать самому.

Share this post


Link to post
Share on other sites

@Amateur, изучайте движок DLE, там все похоже сделано, файлы которые вам нужны:

.htaccess - корневой

/engine/engine.php

 

 

.htaccess - показано как URL менять.

В engine.php, есть как пример составления MySQL запроса, так и большая часть кода, ее прямо копипаст можно сделать, чуть-чуть подкорректировав.

Share this post


Link to post
Share on other sites

кусок .htaccess

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Преобразует ваш юрл  вида

site.com/habrahabr/ в site.com/index.php?q=habrahabr

а все остальное дело техники -- сравниваем адрес с хранящимся в базе, и выдаем соотв. страницу

только мой вам совет, лучше сравнивать хэши, так получается быстрее и элементарным способом отбиваются все sql инекции

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...