Videoiden leikkaaminen Windows 10 Default Player -sovelluksessa

Minulla on yli 30000 html-tiedostoa www.example.com/docs, ja nämä tiedostot on linkitetty toisiinsa. Kun kyse on näiden tiedostojen sisällön näyttämisestä sivustollani, käytän seuraavaa koodia: HTML Include Java

Sain tänään, että isäntäni sallii enintään 10000 tiedostoa kansiota kohti. Tämä tarkoittaa, että olen alkanut jakaa tiedostoni eri kansioihin. Luon todennäköisesti useita kansioita, kuten

  • www.example.com/docs1
  • www.example.com/docs2
  • www.example.com/docs3

Tämä aiheuttaa ongelman, koska minun on muutettava hyperlinkkejä kaikissa 30000 tiedostossa, ja minun on päivitettävä niiden kansioiden asiakirjoja näyttävien sivujen URL-osoitteet.

En välitä kansioiden luomisesta ja tiedostojen siirtämisestä, mutta pelkään todella linkkien ja URL-osoitteiden päivittämistä. Onko olemassa ratkaisua, jota voin hyödyntää? Ajattelen jotain .htaaccess liittyvät, mutta en ole tarpeeksi perehtynyt.

MUOKKAA: tiedostoni ovat seuraavassa muodossa doc[NUMBER].htm, joten se näyttää tältä:

  • doc100.htm
  • doc101.htm
  • doc102.htm

  • Mikä on määrä? Se ei näytä nollatulta.

Kuinka teet tämän, riippuu siitä, miten nämä tiedostot nimetään. Voit esimerkiksi jakaa nämä HTML-tiedostot alihakemistoihin niiden ensimmäisen kirjaimen mukaan (olettaen melko tasaisen / normaalin jakauman). Esimerkiksi:

/docs-a aardvark.html apple.html /docs-b banana.html bee.html : /docs-z zebra.html 

Sitten, kun pyyntö /docs/aardvark.html, se on kirjoitettava sisäisesti uudelleen /docs-a/aardvark.html (koska se on todellinen sijainti). Tämä on suhteellisen triviaalia tehdä mod_rewrite-sovelluksen avulla .htaccess. Esimerkiksi:

RewriteEngine On RewriteRule ^docs/(([a-z]).*\.html)$ /docs-$2/$1 [L] 

Tämä olettaa, että kaikki tiedostot alkavat pienillä kirjaimilla a-z, eikä kukaan kirjain ole liian hallitseva (ts. Selvästi alle 10000 rajan).

Huomaa, että tämä erottelee isot ja pienet kirjaimet, a on erilainen kuin A.

MUOKKAA: tiedostoni ovat seuraavassa muodossa doc[NUMBER].htm

Tässä tapauksessa @ Stephenin ehdotus kommenteissa kuulostaa hyvältä - perustaa hakemiston nimi kestää numero (tasaisen jakauman varmistamiseksi) ja käytä 10 alihakemistoa: /docs-0 .. /docs-9.

RewriteRule ^docs/(doc.*([0-9])\.htm)$ /docs-$2/$1 [L] 

PÄIVITTÄÄ: Voiko sitä muuttaa /docs/docs-0

Kyllä, sinun on kuitenkin myös muutettava RewriteRule kuvio olla enemmän rajoituksia, jotta vältetään uudelleenkirjoittaminen silmukka. Esimerkiksi:

RewriteRule ^docs/(doc\d*(\d)\.htm)$ /docs/docs-$2/$1 [L] 

\d on lyhytmerkkiluokka numeroille. Sama kuin [0-9].

  • Paljon kiitoksia ratkaisustasi. Olen muokannut alkuperäistä viestiäni sisältämään asiakirjojeni muodon. Voinko tehdä mitään muodoni perusteella?
  • 1 Käytä sen sijaan numeron viimeistä numeroa: RewriteRule ^docs/(.*([0-9])\.html)$ /docs-$2/$1 [L]. Tarvitset docs-0 kautta docs-9 hakemistot. Suosittelen viimeistä numeroa ensimmäisen sijasta, koska numeroille viimeinen numero jakautuu tasaisemmin. Aloitusnumerot suosivat matalalukuisia, joista yksi on yleisimpiä.
  • Mahtava. Yritän kokeilla tätä ja raportoida takaisin.
  • @StephenOstermiller Se on hyvä idea! (Olen päivittänyt vastaukseni.) Vaikka se ehkä tekee tiedostojen alkuperäisen siirtämisen vastaaviin hakemistoihin hieman vaikeammaksi - kenties kirjoittaa siihen komentosarjan?
  • 1 mv docs/*0.htm docs/docs-0/ ja yhdeksän muuta vastaavaa käskyä komentorivillä. Vähemmän työtä kuin 26 jokaiselle kirjaimelle. Jos haluat yhden linjan tekemään kaikki: for i in 0 1 2 3 4 5 6 7 8 9; do mkdir -p docs/docs-$i; mv docs/*$i.htm docs/docs-$i/; done

työskennellyt sinulle: Charles Robertson | Haluatko yhteyttä?