2017-06-30 5 views
0

Ich wollte Codesigniter URL Routing und .htaccess URL Neuschreiben verstehen. Sind beide gleich?Mit Codeigniter Routing und .htaccess URL Neuschreiben

Grundsätzlich möchte ich meine ID, die an den Controller übergeben wird, ausblenden. Möchte ich verstehen, wie ich irgendeinen von ihnen dazu benutzen kann?

Auch ist es möglich, dass ich meine Domain nur zeigen kann, und den Ordnernamen und verbergen einen anderen Teil der URL

Eg.

www.example.com/distributor/tenant/info/1

www.example.com/distributor

So kann ich verstecken meinen Controller und id mit .htaccess

Meine Aktuellen .htaccess wie diese

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /bizcloudds/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

</IfModule> 
sehen

Kann das gleiche getan werden mit Codeigniter Routen?

sah ich so etwas wie dies auf der Dokumentation des codeigniter auf Routes:

$route['blog/joe'] = 'blogs/users/34'; 

Aber ich verstehe nicht, wie ich 34 d.h ID des Datensatzes in meine Routen Dateien bekommen?

Ich habe sehr wenig Kenntnisse über .htaccess und Codeigniter Routes, also bitte erklären.

+2

_ "Grundsätzlich möchte ich meine ID verstecken, die an den Controller" _ übergeben wird - das ist natürlich unmöglich. Wenn der Client nur '/ distributor' anfordert, gibt es für den Server keine Möglichkeit, dies mit einer bestimmten ID zu verbinden. Sie könnten POST für alle Ihre Anfragen verwenden, so dass der Benutzer den ID-Wert, den Sie übergeben, nicht direkt sehen würde. Aber wenn Sie der Meinung sind, dass Ihre Anwendung ein einziges Mal "sicherer" wäre, würden Sie falsch liegen. – CBroe

+2

_ "Auch ist es möglich, dass ich nur meine Domain und den Ordnernamen anzeigen und einen anderen Teil der URL verbergen kann" _ - warum würdest du das überhaupt machen wollen? Es wird Menschen davon abhalten, bestimmte Inhalte zu bookmarken, es wird Suchmaschinen daran hindern, einzelne Inhalte zu indizieren ... Das ist die Art von Frage, die normalerweise von Leuten gestellt wird, die, um es ganz offen zu sagen, wenig oder gar keine Ahnung davon haben Das Internet funktioniert ... – CBroe

+0

Sie sind nicht das Gleiche. Routen werden verwendet, um den standardmäßigen segmentbasierten Ansatz von CI für URLs zu ändern - [Dokumentation hier] (https://www.codeigniter.com/user_guide/general/urls.html). Erwägen Sie, Sitzungsdaten zu verwenden, um die ID zu übergeben. – DFriend

Antwort

0

Mit Post-Methode können Sie die Lösung für Ihre Frage finden. Zum Beispiel

<form action="page_url" method="POST"> 
<input name="id" value="16" type="hidden"> 
<input type="submit" value="Show Details"> 
</form> 

Ich hoffe, Sie verstehen. Wenn Sie mehr Anleitung dazu benötigen, bin ich glücklich, Ihnen zu helfen.

+0

Dank ich habe dies in der Option, aber ich habe viele Seiten, wo ich Listen habe, klicken auf sie sendet ID an den Controller Für alle diese Listenseiten werde ich Formulare haben, die ich nicht will! Kann es etwas Dynamischeres geben? – Rajan

+1

Ja, wir können dieses Formular für alle Seiten und eine bestimmte Klasse für den Link gemeinsam verwenden und Javascript verwenden, um das Formular beim Klicken auf den Link zu senden, der die Klasse enthält. So wird es Wert als Post übergeben. Für mich geht das. Ich habe diese Methode für eines meiner Projekte verwendet. Du musst es etwas knifflig machen. Es wird dynamisch arbeiten –

+0

Okay lassen Sie mich überprüfen, ich werde zurück zu Ihnen, wenn ich Hilfe brauche :) – Rajan